公交卡充值问题?
问题描述
小明去公交卡充值中心为自己的公交卡充值,公交充值中心搞了一个充值优惠活动,活动详情如下:
(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);
}
}
}
你期待的结果是什么?实际看到的错误信息又是什么?
小组讨论,已经解决此问题。
回答:
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;
}
}
}
换一种写法 上面有注释 相信题主能看懂
回答:
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);
}
}
}
以上是 公交卡充值问题? 的全部内容, 来源链接: utcz.com/p/945363.html