公交卡充值问题?

问题描述

小明去公交卡充值中心为自己的公交卡充值,公交充值中心搞了一个充值优惠活动,活动详情如下:
(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

回到顶部