当前位置: 首页 > news >正文

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;
    }

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

相关文章:

  • Hive数仓操作(八)
  • python爬虫 - 初识爬虫
  • Updates were rejected because the tip of your current branch is behind 的解决方法
  • 推荐 uniapp 相对好用的海报生成插件
  • 【课程学习】Wireless Communications
  • java入门基础(一篇搞懂)
  • fiddler抓包17_简单接口测试(Composer请求编辑)
  • 疾风大模型气象,基于大模型预测未来天气的探索
  • Tomcat监控与调优:比Tomcat Manager更加强大的Psi-Probe
  • 使用Java调用GeoTools实现全球国家矢量数据入库实战
  • 信息学奥赛:青少年编程的高光舞台,通向未来科技的敲门砖
  • 搭建企业级私有仓库harbor
  • 新手小白在做副业时要注意哪些细节?
  • OpenCV threhold()函数
  • 【JNI】普通类型的基本使用
  • 【C++】模拟实现红黑树
  • Ubuntu安装Hadoop3.4
  • YOLOv8 结合设计硬件感知神经网络设计的高效 Repvgg的ConvNet 网络结构 ,改进EfficientRep结构
  • PostgreSQL是否有等待事件
  • 无人机电力巡检:点亮电力巡检新视野!
  • 字母哥动了离开的心思,他和雄鹿队的缘分早就到了头
  • 甩掉“肥胖刺客”,科学减重指南来了
  • 金俊峰已跨区任上海金山区委副书记
  • “春申阡陌”漆画展:将传统漆艺融入现代创作
  • 中非民间对话在赞比亚举行
  • 构建菌株有效降解有机污染物,上海交大科研成果登上《自然》