【洛谷】【入门2】分支结构(Java8)

(1)P2433 【深基1-2】小学数学 N 合一

题目描述

问题 1

请输出 I love Luogu!

问题 2

这里有 1010 个苹果,小 A 拿走了 22 个,Uim 拿走了 44 个,八尾勇拿走剩下的所有的苹果。我们想知道:

  1. 小A 和 Uim 两个人一共拿走多少苹果?
  2. 八尾勇能拿走多少苹果?

现在需要编写一个程序,输出两个数字作为答案,中间使用空格分开。

问题 3

现在有 1414 个苹果。要均分给 44 名同学,分不掉的苹果放回冰箱。请问:

  1. 每位同学能分得几个苹果?

  2. 一共分出去多少苹果?

  3. 把几个苹果放回冰箱?

    现在需要编写一个程序,输出三个数字作为答案,每个数字一行。

问题 4

现在有 500500 毫升的肥宅快乐水,要均分给 33 名同学,每位同学可以分到多少毫升?请输出一个数字作为输出。保留 66 位有效数字,且不使用科学计数法。

问题 5

甲列火车长 260260 米,每秒行 1212 米;乙列火车长 220220 米,每秒行 2020 米,两车相向而行,从两车车头相遇时开始计时,多长时间后两车车尾相离?已知答案是整数。

问题 6

一个长方形长宽分别是 6 cm6 cm、9 cm9 cm,求它的对角线长度(cmcm)。直接使用 cout 输出。

问题 7

Uim 银行账户里面有 100100 元。经过了下面的操作:

  1. 往里面存了 1010 元;

  2. 购物花掉了 2020 元;

  3. 把里面的钱全部取出。

    请在每次操作后输出账户余额,并使用换行符隔开。

问题 8

当半径为 r=5,请输出圆的周长、面积和球体积。取 π=3.141593。请直接使用 cout 输出答案,每行一个数字。

问题 9

一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;第二天他也刚好吃了剩余桃子的一半,贪嘴多吃了一个;第三天他又刚好吃了剩下的桃子的一半,并贪嘴多吃了一个。第四天起来一看,发现桃子只剩下一个了。请问小猴买了几个桃子?

问题 10

洛谷的评测任务是单位时间内均匀增加的。88 台评测机 3030 分钟可以刚好把评测队列中的程序评测完毕,1010 台评测机 66 分钟可以刚好把评测队列中的程序评测完毕,请问几台评测机可以在 1010 分钟时刚好把评测队列中的程序评测完毕?

问题 11

小 A 跑步速度 5 m/s5 m/s,八尾勇跑步速度 8 m/s8 m/s,八尾勇在小 A 后面 100 m100 m,他们同时起跑,请问需要多长时间八尾勇可以追上小 A?输出一个数字表示答案,使用 cout 直接输出。

问题 12

大家都知道有 2626 个英文字母,其中 A 是第一个字母。现在请编程求出:

  1. M 是字母表中的第几个字母?
  2. 第 1818 个字母是什么?

输出一个数字和一个字母,使用换行隔开。

问题 13

小 A 有两块球形橡皮泥,一个半径是 44,一个半径是 1010。他想把这两块橡皮泥揉在一起,然后塑造成一个正方体,请问这个正方体的棱长是多少?如果结果不是整数,则舍去小数点之后的数字。取 π=3.141593。

问题 14

根据咕咕网校的预测,当课程定价为 110110 元时,会有 1010 人报名。如果课程价格每降低 11 元,就会多 11 名报名者(反之亦然)。如果希望总共能收到 35003500 元学费的话,那么应该定价多少呢?已知本题有两个答案符合要求,则取较小的那一个。如果这个答案不是整数,则需四舍五入精确到整数。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        double pi = 3.141593;
        Scanner sc = new Scanner(System.in);
        switch (sc.nextInt()) {
            case 1:
                System.out.println("I love Luogu!");
                break;
            case 2:
                System.out.print("6 4");
                break;
            case 3:
                System.out.println(3);
                System.out.println(12);
                System.out.println(2);
                break;
            case 4:
                double a = (double)500/3;
		        System.out.printf("%.3f", a);
                break;
            case 5:
                System.out.println((220+260)/(20+12));
                break;
            case 6:
                double b = Math.sqrt(6*6+9*9);
		        System.out.printf("%.4f",b);
                break;
            case 7:
                System.out.println(110);
                System.out.println(90);
                System.out.println(0);
                break;
            case 8:
			    double r=5;
			    System.out.printf("%.4f\n",2*pi*r);
			    System.out.printf("%.4f\n", pi*r*r);
			    System.out.printf("%.3f\n", 4.0/3.0*pi*r*r*r);
                break;
            case 9:
                System.out.println(22);
                break;
            case 10:
                System.out.println(9);
                break;
            case 11:
                double c = 1.0*100/3;
			    System.out.printf("%.4f", c);
                break;
            case 12:
                System.out.println((int)('M'-'A')+1);
			    System.out.println((char)('A'+18-1));
                break;
            case 13:
			    int r1=5,r2=10;
			    double v1 =4*pi*r1*r1*r1/3+4*pi*r2*r2*r2/3;
			    double v2 =Math.pow(v1, 1.0*1/3);
			    System.out.println((int)v2);
			    break;
            case 14:
                System.out.println(50);
                break;
        }
    }
}

(2)P5709 【深基2.习6】Apples Prologue / 苹果和虫子

题目描述

八尾勇喜欢吃苹果。她现在有 m(1≤m≤100)个苹果,吃完一个苹果需要花费 t(0≤t≤100)分钟,吃完一个后立刻开始吃下一个。现在时间过去了 s(1≤s≤10000)分钟,请问她还有几个完整的苹果?

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
       int m = sc.nextInt();
       int t = sc.nextInt();
       int s = sc.nextInt();
       if (t == 0) {
           System.out.println(0);
       }else {
           int eat = s/t + (s%t != 0? 1:0);
           System.out.println((m-eat) >= 0? (m-eat):0);
       }
    }
}

(3)P5710 【深基3.例2】数的性质

题目描述

一些整数可能拥有以下的性质:

  • 性质 1:是偶数;
  • 性质 2:大于 44 且不大于 1212。

小 A 喜欢这两个性质同时成立的整数;Uim 喜欢这至少符合其中一种性质的整数;八尾勇喜欢刚好有符合其中一个性质的整数;正妹喜欢不符合这两个性质的整数。现在给出一个整数 x,请问他们是否喜欢这个整数?

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int r = sc.nextInt();
        int sum =0;
        if(r%2 == 0){
           sum++;
        }
        if(r>4 && r<=12){
           sum++;
        }
        if(sum==2){
           System.out.println("1 1 0 0");
        }else if(sum==1){
            System.out.println("0 1 1 0");
        }else{
            System.out.println("0 0 0 1");
        }
    }
}

(4)P5711 【深基3.例3】闰年判断

题目描述

输入一个年份,判断这一年是否是闰年,如果是输出 1,否则输出 0。

【洛谷】【入门2】分支结构(Java8)_第1张图片

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		if ((a%4 == 0 && a%100 !=0)|| a% 400 == 0) {
			System.out.println("1");
		}else {
			System.out.println("0");
		}
		
	}
}

(5)P5712 【深基3.例4】Apples

题目描述

八尾勇喜欢吃苹果。她今天吃掉了 x 个苹果。英语课上学到了 apple 这个词语,想用它来造句。如果她吃了 1 个苹果,就输出 Today, I ate 1 apple.;如果她没有吃,那么就把 1 换成 0;如果她吃了不止一个苹果,别忘了 apple 这个单词后面要加上代表复数的 s。你能帮她完成这个句子吗?

【洛谷】【入门2】分支结构(Java8)_第2张图片

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        if (x <= 1) {
            System.out.printf("Today, I ate %d apple.",x);
        }else {
            System.out.printf("Today, I ate %d apples.",x);
        }
    }
}

(6)P5713 【深基3.例5】洛谷团队系统

题目描述

在洛谷上使用团队系统非常方便的添加自己的题目。如果在自己的电脑上配置题目和测试数据,每题需要花费时间 55 分钟;而在洛谷团队中上传私有题目,每题只需要花费 33 分钟,但是上传题目之前还需要一次性花费 11 分钟创建与配置团队。现在要配置 n 道题目,如果本地配置花费的总时间短,请输出 Local,否则输出 Luogu

【洛谷】【入门2】分支结构(Java8)_第3张图片

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int a = 5*n;
        int b = 11+3*n;
        if(a>b) {
            System.out.println("Luogu");
        }else {
            System.out.println("Local");
        }
    }
}

(7)P5714 【深基3.例7】肥胖问题

题目描述

BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是 m/h^2​,其中 m 是指体重(千克),ℎh 是指身高(米)。不同体型范围与判定结果如下:

  • 小于 18.518.5:体重过轻,输出 Underweight
  • 大于等于 18.518.5 且小于 2424:正常体重,输出 Normal
  • 大于等于 2424:肥胖,不仅要输出 BMI 值(使用 cout 的默认精度),然后换行,还要输出 Overweight

现在给出体重和身高数据,需要根据 BMI 指数判断体型状态并输出对应的判断。

对于非 C++ 语言,在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀 00,不要输出后缀 00。

请注意,保留六位有效数字不是保留六位小数。例如 123.4567123.4567 应该输出为 123.457123.457,5432.105432.10 应该输出为 5432.15432.1。

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		double m = sc.nextDouble();
		double h = sc.nextDouble();
		double BMI= m/(h*h);
		if(BMI<18.5) {
		    System.out.println("Underweight");
        } else if(18.5<=BMI && BMI<24) {
            System.out.println("Normal");
        } else {
		System.out.printf("%.4f\n",BMI);
		System.out.println("Overweight");
	    }
	}
}

(8)P5715 【深基3.例8】三位数排序

给出三个整数 a,b,c(0≤a,b,c≤100),要求把这三位整数从小到大排序。

【洛谷】【入门2】分支结构(Java8)_第4张图片

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int[] num = new int[3]; 
		for(int i=0;i<3;i++)
			num[i] = sc.nextInt();
		for(int i=0;i num[j+1]) {
					int temp = num[j];
					num[j] = num[j+1];
					num[j+1] = temp;
					}
				}
			}
		for(int i=0;i<3;i++)
		System.out.print(num[i]+" ");
    }
}

(9)P5716 【深基3.例9】月份天数

题目描述

输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年。

【洛谷】【入门2】分支结构(Java8)_第5张图片

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int year = sc.nextInt();
        int month = sc.nextInt();
            switch (month){
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    System.out.print("31");
                    return;
                case 4:
                case 6:
                case 9:
                case 11:
                    System.out.print("30");
                    return;
        }
        if (judge(year)==true){
            System.out.print("29");
        }
        else {
            System.out.print("28");
        }
    }
    public static boolean judge(int n){ 
        if(((n%4==0)&&n%100!=0)|| n%400==0) {
            return true;
        }
        else {
            return false;
        }
    }

}

(10)P1085 [NOIP2004 普及组] 不高兴的津津

题目描述

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

【洛谷】【入门2】分支结构(Java8)_第6张图片

import java.util.Scanner;
 
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int sum, max = 0,day = 0;
		for(int i=0;i<7;i++) {
			int schoolIn = sc.nextInt();
			int schoolOut = sc.nextInt();
			sum = schoolIn + schoolOut;
			if(sum > max) { 
				max = sum;
				day = i + 1;
			}
		}
		if(max > 8) {
		    System.out.println(day);
		}else {
		    System.out.println(0);
		}
	}
}

(11)P1909 [NOIP2016 普及组] 买铅笔

题目描述

P 老师需要去商店买 n 支铅笔作为小朋友们参加 NOIP 的礼物。她发现商店一共有 33 种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P 老师决定只买同一种包装的铅笔。

商店不允许将铅笔的包装拆开,因此 P 老师可能需要购买超过 n 支铅笔才够给小朋友们发礼物。

现在 P 老师想知道,在商店每种包装的数量都足够的情况下,要买够至少 n 支铅笔最少需要花费多少钱。

【洛谷】【入门2】分支结构(Java8)_第7张图片

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int a;
        int b1,b2;
        int c1,c2;
        int d1,d2;
        Scanner sc = new Scanner(System.in);
        a=sc.nextInt();
        b1=sc.nextInt();b2=sc.nextInt();
        c1=sc.nextInt();c2=sc.nextInt();
        d1=sc.nextInt();d2=sc.nextInt();
        int m1,m2,m3;
        if(a%b1!=0){
            m1 = (a/b1+1)*b2;}
        else {
            m1 = (a/b1)*b2;
        }
        if(a%c1!=0){
             m2 = (a/c1+1)*c2;
        }else {
            m2 = a/c1*c2;
        }
        if(a%d1!=0){
            m3 = (a/d1+1)*d2;}
        else {
            m3 = (a/d1*d2);
        }
        if(m1<=m2&&m1<=m3) {
            System.out.print(m1);
        }else if(m2<=m1&&m2<=m3) {
            System.out.print(m2);
        }else if(m3<=m1&&m3<=m2) {
            System.out.print(m3);
        }
    }
}

(12)P5717 【深基3.习8】三角形分类

题目描述

给出三条线段 a,b,c 的长度,均是不大于 10000 的正整数。打算把这三条线段拼成一个三角形,它可以是什么三角形呢?

  • 如果三条线段不能组成一个三角形,输出Not triangle
  • 如果是直角三角形,输出Right triangle
  • 如果是锐角三角形,输出Acute triangle
  • 如果是钝角三角形,输出Obtuse triangle
  • 如果是等腰三角形,输出Isosceles triangle
  • 如果是等边三角形,输出Equilateral triangle

如果这个三角形符合以上多个条件,请按以上顺序分别输出,并用换行符隔开。

【洛谷】【入门2】分支结构(Java8)_第8张图片

import java.util.Arrays;
import java.util.Scanner;

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[] array = {a,b,c};
        Arrays.sort(array);
        a = array[0];
        b = array[1];
        c = array[2];
        if (!((a + b > c) && ((c - a) < b) && ((b - a) < c) && ((c - b) < a))) {
            System.out.println("Not triangle");
            System.exit(0);
        }
        if ((a * a + b * b) > (c * c)) {
            System.out.println("Acute triangle");
        }
        if ((a * a + b * b) == (c * c)) {
            System.out.println("Right triangle");
        }
        if ((a * a + b * b) < (c * c)) {
            System.out.println("Obtuse triangle");
        }
        if (((a == b) || (b == c) ||(a == c))) {
            System.out.println("Isosceles triangle");
        }
        if ((a == b) &&(b == c)) {
            System.out.println("Equilateral triangle");
        }
    }
}

(13)P1422 小玉家的电费

题目描述

夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了。小玉家今天收到了一份电费通知单。小玉看到上面写:据闽价电 [2006]27 号规定,月用电量在 150150 千瓦时及以下部分按每千瓦时 0.4463 元执行,月用电量在 151∼400151∼400 千瓦时的部分按每千瓦时 0.4663元执行,月用电量在 401 千瓦时及以上部分按每千瓦时 0.5663 元执行;小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢。请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少。

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int e=sc.nextInt();
		double money;
		if(e<=150) {
			money=e*0.4463;
		}else if(e>150 && e<=400) {
			money=(e-150)*0.4663+150*0.4463;
		}else {
			money=(e-400)*0.5663+250*0.4663+150*0.4463;
		}
		System.out.printf("%.1f",money);
    }
}

(14)P1424 小鱼的航程(改进版)

题目描述

有一只小鱼,它平日每天游泳 250250 公里,周末休息(实行双休日),假设从周 x 开始算起,过了 n 天以后,小鱼一共累计游泳了多少公里呢?

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int week = sc.nextInt();
        int day = sc.nextInt();
        int sum = 0;
        for (int i=0;i

(15)P1888 三角函数

题目描述

输入一组勾股数 a,b,c(a/=b/=c),用分数格式输出其较小锐角的正弦值。(要求约分。)

import java.math.BigInteger;
import java.util.Arrays;
import java.util.Scanner;
 
public class Main {
 
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		BigInteger[] arr = new BigInteger[3];
		for(int i=0;i<3;i++) {
		    arr[i] = sc.nextBigInteger();
		}
		Arrays.sort(arr);
		System.out.printf("%d/%d",arr[0].divide(arr[0].gcd(arr[2])),arr[2].divide(arr[0].gcd(arr[2])));
	}
}

(16)P1046 [NOIP2005 普及组] 陶陶摘苹果

题目描述

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

现在已知 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int[] AppleHeights = new int[10];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < 10; i++) {
            int AppleHeight = sc.nextInt();
            AppleHeights[i] = AppleHeight;
        }
        int PeopleHeight = sc.nextInt() + 30;
        int j = 0;
        for (int i = 0; i < 10; i++) {
            if (AppleHeights[i] <= PeopleHeight) {
                j++;
            }
        }
        System.out.println(j);
    }
}

(17)P4414 [COCI2006-2007#2] ABC

题目描述

三个整数分别为 A,B,C。这三个数字不会按照这样的顺序给你,但它们始终满足条件:A

【洛谷】【入门2】分支结构(Java8)_第9张图片

import java.util.Arrays;
import java.util.Scanner;

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();
        String s = sc.next();
        int arr[] = {a,b,c};
        Arrays.sort(arr);
        if (s.equals("ABC")) {
            System.out.print(arr[0]+" "+arr[1]+" "+arr[2]);
        }
        else if(s.equals("ACB")) {
            System.out.print(arr[0]+" "+arr[2]+" "+arr[1]);
        }
        else if(s.equals("BAC")) {
            System.out.print(arr[1]+" "+arr[0]+" "+arr[2]);
        }
        else if(s.equals("BCA")) {
            System.out.print(arr[1]+" "+arr[2]+" "+arr[0]);
        }
        else if(s.equals("CAB")) {
            System.out.print(arr[2]+" "+arr[0]+" "+arr[1]);
        }
        else if(s.equals("CBA")) {
            System.out.print(arr[2]+" "+arr[1]+" "+arr[0]);
        }
    }
}

(18)P1055 [NOIP2008 普及组] ISBN 号码

题目描述

每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括 99 位数字、11 位识别码和 33 位分隔符,其规定格式如 x-xxx-xxxxx-x,其中符号 - 就是分隔符(键盘上的减号),最后一位是识别码,例如 0-670-82162-4就是一个标准的 ISBN 码。ISBN 码的首位数字表示书籍的出版语言,例如 00 代表英语;第一个分隔符 - 之后的三位数字代表出版社,例如 670670 代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。

识别码的计算方法如下:

首位数字乘以 11 加上次位数字乘以 22 ……以此类推,用所得的结果  mod 11mod11,所得的余数即为识别码,如果余数为 1010,则识别码为大写字母 X。例如 ISBN 号码 0-670-82162-4 中的识别码 44 是这样得到的:对 067082162 这 99 个数字,从左至右,分别乘以 1,2,…,91,2,…,9 再求和,即 0×1+6×2+……+2×9=1580×1+6×2+……+2×9=158,然后取 158 mod 11158mod11 的结果 44 作为识别码。

你的任务是编写程序判断输入的 ISBN 号码中识别码是否正确,如果正确,则仅输出 Right;如果错误,则输出你认为是正确的 ISBN 号码。

【洛谷】【入门2】分支结构(Java8)_第10张图片

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String rawCode = new Scanner(System.in).next();
        String code = rawCode.replace("-", "");
        int sum = 0, expect = code.charAt(9) - '0';
        expect = code.charAt(9) == 'X' ? 10 : expect;
        for (int i = 0; i < 9; i++){
            sum += (code.charAt(i) - '0') * (i + 1);
            sum %= 11;
        }
        if (expect == sum) {
            System.out.println("Right");
        }else {
            System.out.println(rawCode.substring(0, 12) + (sum == 10 ? "X" : sum));
        }
    }
}

你可能感兴趣的:(洛谷算法题,java,开发语言,算法,数据结构,jvm)