当前位置: 首页 > 知识库问答 >
问题:

java - 公交卡充值问题?

许波涛
2023-10-12

问题描述

小明去公交卡充值中心为自己的公交卡充值,公交充值中心搞了一个充值优惠活动,活动详情如下:
(1)充值200元~299元,赠送50元余额到卡中;
(2)充值300元~499元,赠送100元余额到卡中;
(3)充值500元及500元以上,赠送200元余额到卡中;
(4)充值200元以下,则没有赠送活动;
比如:小明如果充值350元,那么实际卡中到账的金额将会是450元(350元充值 + 100元赠送)。
请编程帮助公交卡充值中心,根据客户的充值金额,计算实际应当到账的金额?

问题出现的平台版本及自己尝试过哪些方法

忽略了200以下充值金额没有赠送活动,只输出充值数;以及充值的大范围没有考虑进去。

相关代码

粘贴代码文本(请勿用截图)
import java.util.Scanner;
public class Main {

public static void main(String[] args){    Scanner sc = new Scanner(System.in);    int n = sc.nextInt();    if(n>=1 && n<=999){        if(n>=200 && n<=299)            System.out.println(n+50);        else if(n>=300 && n<=499)            System.out.println(n+100);        else if(n>=500)            System.out.println(n+200);        else            System.out.println(n);    }}

}

你期待的结果是什么?实际看到的错误信息又是什么?

小组讨论,已经解决此问题。

共有3个答案

贝阳泽
2023-10-12
public static void main(String[] args) {        //配置        int[] nums = {500, 300, 200, 0};        int[] price = {200, 100, 50, 0};        //输入        Scanner sc = new Scanner(System.in);        int n = sc.nextInt();        //极值判断        if (n < 0 || n >= Integer.MAX_VALUE) {            System.out.println("请输入有效的充值金额!");            return;        }        //区间判断        for (int i = 0; i < nums.length; i++) {            if (n >= nums[i]) {                System.out.println(n + price[i]);                break;            }        }            }

换一种写法 上面有注释 相信题主能看懂

百里光熙
2023-10-12
import java.util.Scanner;public class Main {    public static void main(String[] args){        Scanner sc = new Scanner(System.in);        int n = sc.nextInt();                if(n <= 0) {            System.out.println("请输入有效的充值金额!");            return;        }        if(n < 200) {            System.out.println(n);        } else if(n >= 200 && n <= 299) {            System.out.println(n + 50);        } else if(n >= 300 && n <= 499) {            System.out.println(n + 100);        } else { // n >= 500            System.out.println(n + 200);        }    }}
李博达
2023-10-12

公交卡充值问题

问题描述

小明去公交卡充值中心为自己的公交卡充值,公交充值中心搞了一个充值优惠活动,活动详情如下:

  1. 充值200元~299元,赠送50元余额到卡中;
  2. 充值300元~499元,赠送100元余额到卡中;
  3. 充值500元及500元以上,赠送200元余额到卡中;
  4. 充值200元以下,则没有赠送活动;

比如:小明如果充值350元,那么实际卡中到账的金额将会是450元(350元充值 + 100元赠送)。

问题出现的平台版本及自己尝试过哪些方法

忽略了200以下充值金额没有赠送活动,只输出充值数;以及充值的大范围没有考虑进去。

相关代码

以下是相关代码。

import java.util.Scanner;public class Main {    public static void main(String[] args){        Scanner sc = new Scanner(System.in);        int n = sc.nextInt();        if(n>=1 && n<=999){            if(n>=200 && n<=299)                System.out.println(n+50);            else if(n>=300 && n<=499)                System.out.println(n+100);            else if(n>=500)                System.out.println(n+200);            else                System.out.println(n);        }    }}

期待的结果和实际看到的错误信息是什么?

期待的结果是:根据客户充值的金额,正确计算出实际到账的金额。

实际看到的错误信息可能是:当输入的金额超出规定的范围时(例如:大于999元或小于1元),没有做相应的处理。

 类似资料:
  • 第一次在这里发帖。我听到了很多关于社区的好消息。我是一名业余程序员,迄今为止已经涉足C和Java领域。不管怎样,我最近几天胡乱拼凑起来的java 21点游戏让我头痛不已。基本上,我在创建我的牌组时遇到了一个问题。我正在使用ArrayList来保存卡片,但我无法找到一种方法来正确地为每张卡片添加值。正如我的代码所示,我使用parseint从字符串中获取值,并将其添加到卡和中,但问题是,当出现诸如“A

  • 充值须知 在您充值前,请悉知: 充值的汇率:1.00 魔豆 = ¥1.00 魔方加密为自助平台,不提供任何客户服务 提交充值后,您将会跳转到支付宝,请在支付宝中完成付款 充值是实时到账,充值成功后,请刷新页面,可以看到余额发生变化 请注意,您在充值前应当确认充值数额是否正确,一旦付款成功,资金将不可退还! 充值后,您可以: 购买魔方+服务 为加密文件进行付款 支付使用其它付费操作产生的费用 开具发

  • Backoffice图像这是prestashop Backoffice的产品特征图像。有人能告诉我如何在控制器中访问这些特性吗?从过去的2-3天,我只在这方面的工作

  • 本文向大家介绍交叉熵公式相关面试题,主要包含被问及交叉熵公式时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 交叉熵:设p(x)、q(x)是X中取值的两个概率分布,则p对q的相对熵是: 在一定程度上,相对熵可以度量两个随机变量的“距离”,且有D(p||q) ≠D(q||p)。另外,值得一提的是,D(p||q)是必然大于等于0的。 互信息:两个随机变量X,Y的互信息定义为X,Y的联合分布和各自

  • 问题内容: 我的问题是关于:Public String(char [] value) 。有人可以帮我吗:它是否在内部为每个值[i]循环。特别, Public String(char [] value)的含义是: 或不 ? 问题答案: Java是开放源代码,如果将源代码附加到Eclipse,则始终可以使用F3来检查功能。在这种情况下,String类具有以下正在寻找的构造函数: 编辑:如果您想知道,A

  • 问题内容: 有人可以诊断我面临的问题吗?在运行演示时,您可以看到中间部分为空白,我需要填充整个区域。 提前谢谢了 问题答案: 多边形与自身相交。fillPolygon方法无法清楚地确定哪个点在哪个点以及哪个点在哪个点之外。从fillPolygon javadoc: 多边形内部的区域是使用偶数填充规则(也称为交替规则)定义的。 也许您可以将多边形分成三个单个的多边形。