公交卡充值问题?

作者站长头像
站长
· 阅读数 7

问题描述

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

        
    }

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

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容