公交卡充值问题?
问题描述
小明去公交卡充值中心为自己的公交卡充值,公交充值中心搞了一个充值优惠活动,活动详情如下:(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);
}
}
}
你期待的结果是什么?实际看到的错误信息又是什么?
小组讨论,已经解决此问题。
回复
1个回答
test
2024-06-26
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;
}
}
}
换一种写法 上面有注释 相信题主能看懂
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容