Java题集(从入门到精通)04

此系列文章收录大量Java经典代码题(也可以算是leetcode刷题指南),希望可以与大家一起努力学好Java。3、2、1,请看!

目录

一、北京地铁计价程序

二、人名币兑换

三、各位数字之和

一、北京地铁计价程序

【问题描述】北京地铁按公里计价的规则为:6km(含)内为3元;6~12km(含)为4元;12~22km(含)为5元;22~32km(含)为6元;32km以上每加1元可乘坐20km.

【输入形式】输入要乘坐地铁的距离(整数),以km为单位
【输出形式】输出乘坐这段距离地铁所需要的费用,以元为单位
【样例输入】38
【样例输出】price=7
【样例说明】38km-32km=6km<1*20km,则地铁费用为6+1=7元
代码如下:

    public static void main(String[] args) throws Exception {
        Scanner scn=new Scanner(System.in);
        int m=scn.nextInt();//输入乘坐地铁的距离
        int price=0;//price初始值为0
        if(m<=6){
            price=3;
        }
        else if(m<=12){
            price=4;
        }
        else if(m<=22){
            price=5;
        }
        else if(m<=32){
            price=6;
        }
        else{
            m-=32;
            price=6;
            while(m>0){//除去基本的32公里,每20公里加一元
                m-=20;
                price++;
            }
        }
        System.out.println("price="+price);//输出最后结果
    }

二、人名币兑换

【问题描述】

输入一个人民币的整数值(100以内以元为单位),编程找到用10元、5元、2元、1元表示的总数量的最小组合方式。

【输入形式】

从控制台输入一个整数值,表示以元为单位的人民币币值。

【输出形式】

向控制台输出四个整数(以空格分隔),分别表示兑换成的10元、5元、2元、1元人民币的数量,若没有某个币值,则对应输出0。

【样例1输入】

98

【样例1输出】

9 1 1 1

【样例1说明】

输入为98,表示98元人民币,把其兑换成10元、5元、2元、1元表示的总数量的最小组合方式为:9个10元,1个5元,1个2元,1个1元,故输出:9 1 1 1

【样例2输入】

11

【样例2输出】

1 0 0 1

【样例2说明】

输入为11,表示11元人民币,把其兑换成10元、5元、2元、1元表示的总数量的最小组合方式为:1个10元,1个1元,没有5元和2元,故输出:1 0 0 1。其中在int类型中,10/2=5,5/2=2,2/2=1,可以利用这一点使程序更简便。代码如下:

    public static void main(String[] args) throws Exception {
        Scanner scn=new Scanner(System.in);
        int n=scn.nextInt();//人民币面额
        int m=10;
        while(n>0){
            System.out.print(n/m+" ");
            n%=m;
            m/=2;
        }
    }

三、各位数字之和

【问题描述】
 
编写函数int sum(int x),求整数x的各位数字之和。
在main函数中测试该函数:从键盘输入一非负整数,然后调用sum函数计算各位数字之和并输出结果。
 
【输入形式】
 
输入一个正整数。
 
【输出形式】

输出该整数各位数字之和。
 
【样例输入】
58
 
【样例输出】

13
 
【样例说明】

输入整数58,其各位数字之和为:5+8 = 13。使用sum函数,涉及到函数调用。

    public static void main(String[] args) throws Exception {
        Scanner scn=new Scanner(System.in);
        int n=scn.nextInt();//输入数据
        System.out.println(sum(n));
    }
    public static int sum(int n){
        int m=0;
        while(n>0){
            m+=n%10;
            n/=10;
        }
        return m;
    }

这篇文章到此结束,感谢各位的阅读和所提出的宝贵意见,大家也可以试着自己动手编写代码。如果觉得这篇文章写的还可以或者对您有帮助,麻烦点赞收藏加转发!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值