洛谷顺序结构题单刷题记录 java

洛谷答题链接

B2002 Hello,World!

题目描述
编写一个能够输出 Hello,World! 的程序。

输入格式

输出格式

输入输出样例
输入

输出

Hello,World!

已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        System.out.print("Hello,World!");
    }
}

B2025 输出字符菱形

题目描述
用 * 构造一个对角线长 5 个字符,倾斜放置的菱形。

输入格式
没有输入要求。

输出格式
如样例所示。用 * 构成的菱形。

输入输出样例
输入

输出

  *
 ***
*****
 ***
  *

已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        System.out.println("  *");
        System.out.println(" ***");
        System.out.println("*****");
        System.out.println(" ***");
        System.out.println("  *");
    }
}

P1000 超级玛丽游戏

题目描述
超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。

                ********
               ************
               ####....#.
             #..###.....##....
             ###.......######              ###            ###
                ...........               #...#          #...#
               ##*#######                 #.#.#          #.#.#
            ####*******######             #.#.#          #.#.#
           ...#***.****.*###....          #...#          #...#
           ....**********##.....           ###            ###
           ....****    *****....
             ####        ####
           ######        ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
##########################################    #----------#
#.....#......##.....#......##.....#......#    #----------#
##########################################    #----------#
#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#
##########################################    ############

输入格式

输出格式
如描述

输入输出样例

已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        System.out.println("                ********");
        System.out.println("               ************");
        System.out.println("               ####....#.");
        System.out.println("             #..###.....##....");
        System.out.println("             ###.......######              ###            ###");
        System.out.println("                ...........               #...#          #...#");
        System.out.println("               ##*#######                 #.#.#          #.#.#");
        System.out.println("            ####*******######             #.#.#          #.#.#");
        System.out.println("           ...#***.****.*###....          #...#          #...#");
        System.out.println("           ....**********##.....           ###            ###");
        System.out.println("           ....****    *****....");
        System.out.println("             ####        ####");
        System.out.println("           ######        ######");
        System.out.println("##############################################################");
        System.out.println("#...#......#.##...#......#.##...#......#.##------------------#");
        System.out.println("###########################################------------------#");
        System.out.println("#..#....#....##..#....#....##..#....#....#####################");
        System.out.println("##########################################    #----------#");
        System.out.println("#.....#......##.....#......##.....#......#    #----------#");
        System.out.println("##########################################    #----------#");
        System.out.println("#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#");
        System.out.print("##########################################    ############");
    }
}

P1001 A+B Problem

题目描述
输入两个整数 a , b a, b a,b,输出它们的和( ∣ a ∣ , ∣ b ∣ ≤ 10 9 |a|,|b| \le {10}^9 a,b109)。

输入格式
两个以空格分开的整数。

输出格式
一个整数。

输入输出样例

输入

20 30

输出

50

已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        char c = sc.nextLine().charAt(0);//单个字符输入方式
        System.out.println("  " + c + "  ");//字符之间可以用+号连接成字符串
        System.out.println(" " + c + c + c + " ");
        System.out.println("" + c + c + c + c + c + "");
    }
}

P5703 【深基2.例5】苹果采购

题目描述
现在需要采购一些苹果,每名同学都可以分到固定数量的苹果,并且已经知道了同学的数量,请问需要采购多少个苹果?

输入格式
输入两个不超过 1 0 9 10^9 109 正整数,分别表示每人分到的数量和同学的人数。

输出格式
一个整数,表示答案。保证输入和答案都在 int 范围内的非负整数。

输入输出样例

输入

5 3

输出

15

已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = a * b;
        System.out.print(c);
    }
}

P5704 【深基2.例6】字母转换

题目描述
输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。

输入格式

输出格式

输入输出样例
输入

q

输出

Q

已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.nextLine();
        String b = a.toUpperCase();//利用字符串函数将小写字符转换为大写字符
        System.out.print(b);
    }
}

P5705 【深基2.例7】数字反转

题目描述
输入一个不小于 100 100 100 且小于 1000 1000 1000,同时包括小数点后一位的一个浮点数,例如 123.4 123.4 123.4 ,要求把这个数字翻转过来,变成 4.321 4.321 4.321 并输出。

输入格式
一行一个浮点数

输出格式
一行一个浮点数

输入输出样例
输入

123.4

输出

4.321

已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.nextLine();
        for (int i = a.length() - 1; i >= 0; i--) {
            System.out.print(a.charAt(i));
        }
    }
}

P5706 【深基2.例8】再分肥宅水

题目描述
现在有 t t t 毫升肥宅快乐水,要均分给 n n n 名同学。每名同学需要 2 2 2 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 3 3 3 位),以及一共需要多少个杯子。

输入格式
输入一个实数 t t t 和一个正整数 n n n,使用空格隔开。

输出格式
输出两行。

第一行输出一个三位小数,表示可以获得多少毫升饮料。第二行输出一个正整数,表示一共需要多少个杯子。

输入输出样例
输入

500.0 3

输出

166.667
6

已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double t = sc.nextDouble();
        int n = sc.nextInt();
        double x = t / n;
        String y = String.format("%.3f", x);
        System.out.println(y);
        System.out.println(2 * n);
    }
}

P5708 【深基2.习2】三角形面积

题目描述
一个三角形的三边长分别是 a a a b b b c c c,那么它的面积为 p ( p − a ) ( p − b ) ( p − c ) \sqrt{p(p-a)(p-b)(p-c)} p(pa)(pb)(pc) ,其中 p = 1 2 ( a + b + c ) p=\frac{1}{2}(a+b+c) p=21(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到 1 1 1 位小数。

输入格式
第一行输入三个实数 a , b , c a,b,c a,b,c,以空格隔开。

输出格式
输出一个实数,表示三角形面积。精确到小数点后 1 1 1 位。

输入输出样例
输入

3 4 5

输出

6.0

已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double a = sc.nextDouble();
        double b = sc.nextDouble();
        double c = sc.nextDouble();
        double p = 1.0 / 2 * (a + b + c);
        double space = Math.sqrt(p * (p-a) * (p-b) * (p-c));
        String s = String.format("%.1f", space);
        System.out.println(s);
    }
}

P5707 【深基2.例12】上学迟到

题目描述
学校和 yyy 的家之间的距离为 s s s 米,而 yyy 以 v v v 米每分钟的速度匀速走向学校。

在上学的路上,yyy 还要额外花费 10 10 10 分钟的时间进行垃圾分类。

学校要求必须在上午 8:00 \textrm{8:00} 8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。

由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。

输入格式
一行两个正整数 s , v s,v s,v,分别代表路程和速度。

输出格式
输出一个 24 24 24 小时制下的时间,代表 yyy 最晚的出发时间。

输出格式为 HH:MM \texttt{HH:MM} HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 0 0 0

输入输出样例
输入

100 99

输出

07:48

已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int s = sc.nextInt();
        int v = sc.nextInt();

        //获得yyy所花费的总分钟数
        int time = 0;
        //判断是否能够整除
        if ((s % v) == 0){
            time = s / v + 10;
        }else {
            time = s / v + 10 + 1;
        }

        //将分钟数化为小时分钟的形式
        int h1 = (int) (time / 60);
        int m1 = time % 60;

        //将小时分钟和八点钟进行计算
        int h2, m2;
        if(m1 == 0){
            m2 = 0;
            if (h1 <= 8){
                h2 = 8 - h1;
            }else {
                h2 = 8 + 24 -h1;
            }
        }else{
            m2 = 60 - m1;
            if (h1 <= 7){
                h2 = 7 - h1;
            }else {
                h2 = 7 + 24 -h1;
            }
        }

        //处理数字格式
        String h3;
        if(h2 < 10){
            h3 = '0' + String.valueOf(h2);
        }else{
            h3 = String.valueOf(h2);
        }
        String m3;
        if(m2 < 10){
            m3 = '0' + String.valueOf(m2);
        }else{
            m3 = String.valueOf(m2);
        }

        System.out.print(h3+':'+m3);
    }
}

B2029 大象喝水

题目描述
一只大象口渴了,要喝 20 20 20 升水才能解渴,但现在只有一个深 h h h 厘米,底面半径为 r r r 厘米的小圆桶 ( h h h r r r 都是整数)。问大象至少要喝多少桶水才会解渴。

Update:数据更新,这里我们近似地取圆周率 π = 3.14 \pi = 3.14 π=3.14

输入格式
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深 h h h 和底面半径 r r r,单位都是厘米。

输出格式
输出一行,包含一个整数,表示大象至少要喝水的桶数。

输入输出样例
输入

23 11

输出

3

数据规模与约定
对于全部的测试点,保证 1 ≤ h ≤ 500 1 \leq h \leq 500 1h500 1 ≤ r ≤ 100 1 \leq r \leq 100 1r100

已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int h = sc.nextInt();
        int r = sc.nextInt();
        double pi = 3.14;
        double tong = pi * r * r * h / 1000;
        int ans = ((int) (20 / tong)) + 1;
        System.out.print(ans);
    }
}

P1425 小鱼的游泳时间

题目描述
伦敦奥运会要到了,小鱼在拼命练习游泳准备参加游泳比赛,可怜的小鱼并不知道鱼类是不能参加人类的奥运会的。

这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按 24 24 24 小时制计算),它发现自己从 a a a b b b 分一直游泳到当天的 c c c d d d 分,请你帮小鱼计算一下,它这天一共游了多少时间呢?

小鱼游的好辛苦呀,你可不要算错了哦。

输入格式
一行内输入四个整数,以空格隔开,分别表示题目中的 a , b , c , d a, b, c, d a,b,c,d

输出格式
一行内输出两个整数 e e e f f f,用空格间隔,依次表示小鱼这天一共游了多少小时多少分钟。其中表示分钟的整数 f f f 应该小于 60 60 60

输入输出样例
输入

12 50 19 10

输出

6 20

提示
对于全部测试数据, 0 ≤ a , c ≤ 24 0\le a,c \le 24 0a,c24 0 ≤ b , d ≤ 60 0\le b,d \le 60 0b,d60,且结束时间一定晚于开始时间。
已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int d = sc.nextInt();

        int min = (c * 60 + d) - (a * 60 + b);

        int e = min / 60;
        int f = min % 60;

        System.out.print(e);
        System.out.print(' ');
        System.out.print(f);
    }
}

P1421 小玉买文具

题目描述
班主任给小玉一个任务,到文具店里买尽量多的签字笔。已知一只签字笔的价格是 1 1 1 9 9 9 角,而班主任给小玉的钱是 a a a b b b 角,小玉想知道,她最多能买多少只签字笔呢。

输入格式
输入只有一行两个整数,分别表示 a a a b b b

输出格式
输出一行一个整数,表示小玉最多能买多少只签字笔。

输入输出样例
输入

10 3

输出

5

数据规模与约定
对于全部的测试点,保证 0 ≤ a ≤ 1 0 4 0 \leq a \leq 10^4 0a104 0 ≤ b ≤ 9 0 \leq b \leq 9 0b9

已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int ans = (a * 10 + b) / 19;
        System.out.print(ans);
    }
}

P3954 [NOIP2017 普及组] 成绩

题目描述
牛牛最近学习了 C++ 入门课程,这门课程的总成绩计算方法是:

总成绩 = 作业成绩 × 20 % + 小测成绩 × 30 % + 期末考试成绩 × 50 % \text{总成绩}=\text{作业成绩}\times 20\%+\text{小测成绩}×30\%+\text{期末考试成绩} \times 50\% 总成绩=作业成绩×20%+小测成绩×30%+期末考试成绩×50%

牛牛想知道,这门课程自己最终能得到多少分。

输入格式
三个非负整数 A , B , C A,B,C A,B,C,分别表示牛牛的作业成绩、小测成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是 100 100 100 分。

输出格式
一个整数,即牛牛这门课程的总成绩,满分也是 100 100 100 分。

输入输出样例
输入

100 100 80

输出

90

数据说明

对于 30 % 30\% 30% 的数据, A = B = 0 A=B=0 A=B=0
对于另外 30 % 30\% 30% 的数据, A = B = 100 A=B=100 A=B=100
对于 100 % 100\% 100% 的数据, 0 ≤ A , B , C ≤ 100 0≤A,B,C≤100 0A,B,C100 A , B , C A,B,C A,B,C 都是 10 10 10 的整数倍。

已通过代码

import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int ans = (int)(a * 0.2 + b * 0.3 + c * 0.5);
        System.out.print(ans);
    }
}
  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值