洛谷答题链接
题目描述
问题 1
请输出 I love Luogu!
问题 2
这里有 10 10 10 个苹果,小 A 拿走了 2 2 2 个,Uim 拿走了 4 4 4 个,小 B 拿走剩下的所有的苹果。我们想知道:
问题 3
现在有 14 14 14 个苹果。要均分给 4 4 4 名同学,分不掉的苹果放回冰箱。请问:
问题 4
现在有 500 500 500 毫升的肥宅快乐水,要均分给 3 3 3 名同学,每位同学可以分到多少毫升?请输出一个数字作为输出。保留 6 6 6 位有效数字,且不使用科学计数法。
问题 5
甲列火车长 260 260 260 米,每秒行 12 12 12 米;乙列火车长 220 220 220 米,每秒行 20 20 20 米,两车相向而行,从两车车头相遇时开始计时,多长时间后两车车尾相离?已知答案是整数。
问题 6
一个长方形长宽分别是 6 cm 6 \text{ cm} 6 cm、 9 cm 9 \text{ cm} 9 cm,求它的对角线长度( cm \text{cm} cm)。直接使用 cout
输出。
问题 7
Uim 银行账户里面有 100 100 100 元。经过了下面的操作:
问题 8
当半径为 r = 5 r=5 r=5,请输出圆的周长、面积和球体积。取 π = 3.141593 \pi=3.141593 π=3.141593。请直接使用 cout
输出答案,每行一个数字。
问题 9
一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;第二天他也刚好吃了剩余桃子的一半,贪嘴多吃了一个;第三天他又刚好吃了剩下的桃子的一半,并贪嘴多吃了一个。第四天起来一看,发现桃子只剩下一个了。请问小猴买了几个桃子?
问题 10
洛谷的评测任务是单位时间内均匀增加的。 8 8 8 台评测机 30 30 30 分钟可以刚好把评测队列中的程序评测完毕, 10 10 10 台评测机 6 6 6 分钟可以刚好把评测队列中的程序评测完毕,请问几台评测机可以在 10 10 10 分钟时刚好把评测队列中的程序评测完毕?
问题 11
小 A 跑步速度 5 m/s 5 \text{ m/s} 5 m/s,小 B 跑步速度 8 m/s 8 \text{ m/s} 8 m/s,小 B 在小 A 后面 100 m 100 \text{ m} 100 m,他们同时起跑,请问需要多长时间小 B 可以追上小 A?输出一个数字表示答案,使用 cout
直接输出。
问题 12
大家都知道有 26 26 26 个英文字母,其中 A 是第一个字母。现在请编程求出:
问题 13
小 A 有两块球形橡皮泥,一个半径是 4 4 4,一个半径是 10 10 10。他想把这两块橡皮泥揉在一起,然后塑造成一个正方体,请问这个正方体的棱长是多少?如果结果不是整数,则舍去小数点之后的数字。取 π = 3.141593 \pi = 3.141593 π=3.141593。
问题 14
根据咕咕网校的预测,当课程定价为 110 110 110 元时,会有 10 10 10 人报名。如果课程价格每降低 1 1 1 元,就会多 1 1 1 名报名者(反之亦然)。如果希望总共能收到 3500 3500 3500 元学费的话,那么应该定价多少呢?已知本题有两个答案符合要求,则取较小的那一个。如果这个答案不是整数,则需四舍五入精确到整数。
输入格式
输入一个正整数,表示第几个问题。
输出格式
根据所输入的问题编号,输出对应问题的答案。
输入输出样例
输入
2
输出
6 4
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int qt = sc.nextInt();
double pi = 3.141593;
switch (qt) {
case 1:
System.out.println("I love Luogu!");
break;
case 2:
System.out.println("6 4");
break;
case 3:
System.out.println(3);
System.out.println(12);
System.out.println(2);
break;
case 4:
//cout有自己的保留位数,这里根据cout输出确定了位数,不深究
System.out.printf("%.3f\n", 500 / 3.0);
break;
case 5:
System.out.println((260 + 220) / (12 + 20));
break;
case 6:
double dia = Math.sqrt(6 * 6 + 9 * 9);
//cout有自己的保留位数,这里根据cout输出确定了位数,不深究
System.out.printf("%.4f\n", dia);
break;
case 7:
System.out.println(110);
System.out.println(90);
System.out.println(0);
break;
case 8:
double r = 5;
//cout有自己的保留位数,这里根据cout输出确定了位数,不深究
System.out.printf("%.4f\n", 2 * pi * r);
System.out.printf("%.4f\n", pi * r * r);
System.out.printf("%.3f\n", 4 / 3.0 * pi * Math.pow(r, 3));
break;
case 9:
System.out.println(22);
break;
case 10:
System.out.println(9);
break;
case 11:
//cout有自己的保留位数,这里根据cout输出确定了位数,不深究
System.out.printf("%.4f\n", 100 / 3.0);
break;
case 12:
System.out.println((int) ('M' - 'A') + 1);
System.out.println((char) ('A' + 18 - 1));
break;
case 13:
double v = 4 / 3.0 * pi * Math.pow(4, 3) + 4 / 3.0 * pi * Math.pow(10, 3);
int length = (int) Math.pow(v, 1.0 / 3);
System.out.println(length);
break;
case 14:
//二元一次方程组求解
System.out.println(50);
break;
}
}
}
题目描述
小 B 喜欢吃苹果。她现在有 m m m( 1 ≤ m ≤ 100 1 \le m \le 100 1≤m≤100)个苹果,吃完一个苹果需要花费 t t t( 0 ≤ t ≤ 100 0 \le t \le 100 0≤t≤100)分钟,吃完一个后立刻开始吃下一个。现在时间过去了 s s s( 1 ≤ s ≤ 10000 1 \le s \le 10000 1≤s≤10000)分钟,请问她还有几个完整的苹果?
输入格式
输入三个非负整数表示 m , t , s m, t, s m,t,s。
输出格式
输出一个整数表示答案。
输入输出样例
输入
50 10 200
输出
30
提示
如果你出现了 RE,不如检查一下被零除?
已通过代码
import java.util.*;
import java.lang.*;
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){
int apple = (int)Math.ceil(1.0 * s / t);
int ans = m - apple >= 0 ? m - apple : 0;
System.out.println(ans);
}else{
System.out.println(0);
}
}
}
题目描述
一些整数可能拥有以下的性质:
小 A 喜欢这两个性质同时成立的整数;Uim 喜欢这至少符合其中一种性质的整数;小 B 喜欢刚好有符合其中一个性质的整数;正妹喜欢不符合这两个性质的整数。现在给出一个整数 x x x,请问他们是否喜欢这个整数?
输入格式
输入一个整数 x ( 0 ≤ x ≤ 1000 ) x(0\le x \le 1000) x(0≤x≤1000)
输出格式
输出这 4 4 4 个人是否喜欢这个数字,如果喜欢则输出 1
,否则输出 0
,用空格分隔。输出顺序为:小 A、Uim、小 B、正妹。
输入输出样例
输入
12
输出
1 1 0 0
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int a = p1(x) && p2(x) ? 1 : 0;
int b = p1(x) || p2(x) ? 1 : 0;
int c = p1(x) ^ p2(x) ? 1 : 0;
int d = !p1(x) && !p2(x) ? 1 : 0;
//整数+字符串可以拼接成字符串
//注意:整数+字符会进行整数与ASCII码的计算,从而输出整数
System.out.print(a + " " + b + " " + c + " " + d) ;
}
public static boolean p1(int x) {
return x % 2 == 0;
}
public static boolean p2(int x) {
return x > 4 && x <= 12;
}
}
题目描述
输入一个年份,判断这一年是否是闰年,如果是输出 1 1 1,否则输出 0 0 0。
输入格式
输入一个正整数 n n n,表示年份。
输出格式
输出一行。如果输入的年份是闰年则输出 1 1 1,否则输出 0 0 0。
输入输出样例
输入
1926
输出
0
提示
数据保证, 1582 ≤ n ≤ 2020 1582 \leq n \leq 2020 1582≤n≤2020 且年份为自然数。
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
//闰年性质:
//①、如果年份不能被100整除但能被4整除,则为闰年。
//②、如果年份能被400整除,则为闰年。
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int ans = ((n % 100 != 0 && n % 4 == 0) || (n % 400 == 0)) ? 1 : 0;
System.out.print(ans);
}
}
题目描述
小 B 喜欢吃苹果。她今天吃掉了 x x x 个苹果。英语课上学到了 apple 这个词语,想用它来造句。如果她吃了 1 个苹果,就输出 Today, I ate 1 apple.
;如果她没有吃,那么就把 1 换成 0;如果她吃了不止一个苹果,别忘了 apple
这个单词后面要加上代表复数的 s
。你能帮她完成这个句子吗?
输入格式
输入一行一个自然数 x x x,表示吃掉的苹果数。
输出格式
根据题目要求输出。
输入输出样例
输入
1
输出
Today, I ate 1 apple.
提示
对于所有数据, 0 ≤ x ≤ 100 0\le x \le 100 0≤x≤100。
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
if(x == 1 || x == 0){
System.out.printf("Today, I ate %d apple.\n", x);
}else{
System.out.printf("Today, I ate %d apples.\n", x);
}
}
}
题目描述
在洛谷上使用团队系统非常方便的添加自己的题目。如果在自己的电脑上配置题目和测试数据,每题需要花费时间 5 5 5 分钟;而在洛谷团队中上传私有题目,每题只需要花费 3 3 3 分钟,但是上传题目之前还需要一次性花费 11 11 11 分钟创建与配置团队。现在要配置 n n n 道题目,如果本地配置花费的总时间短,请输出 Local
,否则输出 Luogu
。
输入格式
输入一个正整数 n n n,表示需要配置的题目量。
输出格式
输出一行,一个字符串。如果本地配置花费的总时间短,请输出 Local
,否则输出 Luogu
。
输入输出样例
输入
2
输出
Local
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int local = 5 * n;
int luogu = 11 + 3 * n;
if(local < luogu){
System.out.println("Local");
}else{
System.out.println("Luogu");
}
}
}
题目描述
BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是 m h 2 \dfrac{m}{h^2} h2m,其中 m m m 是指体重(千克), h h h 是指身高(米)。不同体型范围与判定结果如下:
Underweight
;Normal
;cout
的默认精度),然后换行,还要输出 Overweight
;现在给出体重和身高数据,需要根据 BMI 指数判断体型状态并输出对应的判断。
对于非 C++ 语言,在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀 0 0 0,不要输出后缀 0 0 0。
请注意,保留六位有效数字不是保留六位小数。例如 123.4567 123.4567 123.4567 应该输出为 123.457 123.457 123.457, 5432.10 5432.10 5432.10 应该输出为 5432.1 5432.1 5432.1。
输入格式
共一行。
第一行,共 2 2 2 个浮点数, m , h m, h m,h,分别表示体重(单位为 kg),身高(单位为 m)。
输出格式
输出一行一个字符串,表示根据 BMI 的对应判断。特别地,对于 Overweight
情况的特别处理请参照题目所述。
输入输出样例
输入
70 1.72
输出
Normal
已通过代码
import java.util.*;
import java.lang.*;
import java.math.*;
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.print("Underweight");
} else if (bmi >= 18.5 && bmi < 24) {
System.out.print("Normal");
} else {
BigDecimal bd = new BigDecimal(bmi);
//按照四舍五入的规则保留4位有效数字
//题目有问题,保留6位有效数字过不去测试用例
bd = bd.setScale(4, BigDecimal.ROUND_HALF_UP);
bmi = bd.doubleValue();
System.out.println(bmi);
System.out.println("Overweight");
}
}
}
题目描述
给出三个整数 a , b , c ( 0 ≤ a , b , c ≤ 100 ) a,b,c(0\le a,b,c \le 100) a,b,c(0≤a,b,c≤100),要求把这三位整数从小到大排序。
输入格式
输入三个整数 a , b , c a,b,c a,b,c,以空格隔开。
输出格式
输出一行,三个整数,表示从小到大排序后的结果。
输入输出样例
输入
1 14 5
输出
1 5 14
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] a = new int[3];
for(int i = 0; i < 3; i++){
a[i] = sc.nextInt();
}
Arrays.sort(a);
System.out.print(a[0] + " " + a[1] + " " + a[2]);
}
}
题目描述
输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年。
输入格式
输入两个正整数,分别表示年份 y y y 和月数 m m m,以空格隔开。
输出格式
输出一行一个正整数,表示这个月有多少天。
输入输出样例
输入
1926 8
输出
31
提示
数据保证 1583 ≤ y ≤ 2020 1583 \leq y \leq 2020 1583≤y≤2020, 1 ≤ m ≤ 12 1 \leq m \leq 12 1≤m≤12。
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int y = sc.nextInt();
int m = sc.nextInt();
if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
System.out.print(31);
} else if (m == 4 || m == 6 || m == 9 || m == 11) {
System.out.print(30);
} else {
if ((y % 100 != 0 && y % 4 == 0) || (y % 400 == 0)) {
System.out.print(29);
} else {
System.out.print(28);
}
}
}
}
题目描述
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。
输入格式
输入包括 7 7 7 行数据,分别表示周一到周日的日程安排。每行包括两个小于 10 10 10 的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。
输出格式
一个数字。如果不会不高兴则输出 0 0 0,如果会则输出最不高兴的是周几(用 1 , 2 , 3 , 4 , 5 , 6 , 7 1, 2, 3, 4, 5, 6, 7 1,2,3,4,5,6,7 分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。
输入输出样例
输入
5 3
6 2
7 2
5 3
5 4
0 4
0 6
输出
3
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int max = 0, maxday = 0;
for(int i = 1; i <= 7; i++){
int school = sc.nextInt();
int mother = sc.nextInt();
int sum = school + mother;
if(max < sum){
max = sum;
maxday = i;
}
}
if(max <= 8){
System.out.print(0);
}else{
System.out.print(maxday);
}
}
}
题目描述
P 老师需要去商店买 n n n 支铅笔作为小朋友们参加 NOIP 的礼物。她发现商店一共有 3 3 3 种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起见,P 老师决定只买同一种包装的铅笔。
商店不允许将铅笔的包装拆开,因此 P 老师可能需要购买超过 n n n 支铅笔才够给小朋友们发礼物。
现在 P 老师想知道,在商店每种包装的数量都足够的情况下,要买够至少 n n n 支铅笔最少需要花费多少钱。
输入格式
第一行包含一个正整数 n n n,表示需要的铅笔数量。
接下来三行,每行用 2 2 2 个正整数描述一种包装的铅笔:其中第 1 1 1 个整数表示这种包装内铅笔的数量,第 2 2 2 个整数表示这种包装的价格。
保证所有的 7 7 7 个数都是不超过 10000 10000 10000 的正整数。
输出格式
1 1 1 个整数,表示 P 老师最少需要花费的钱。
输入输出样例
输入
57
2 2
50 30
30 27
输出
54
已通过代码
import java.util.*;
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int min = Integer.MAX_VALUE;
for (int i = 1; i <= 3; i++) {
int num = sc.nextInt();
int price = sc.nextInt();
int ans = (int)Math.ceil(1.0 * n / num) * price;
if (ans < min) {
min = ans;
}
}
System.out.print(min);
}
}
题目描述
给出三条线段 a , b , c a,b,c a,b,c 的长度,均是不大于 10000 10000 10000 的正整数。打算把这三条线段拼成一个三角形,它可以是什么三角形呢?
Not triangle
;Right triangle
;Acute triangle
;Obtuse triangle
;Isosceles triangle
;Equilateral triangle
。如果这个三角形符合以上多个条件,请按以上顺序分别输出,并用换行符隔开。
输入格式
输入 3 个整数 a a a、 b b b 和 c c c。
输出格式
输出若干行判定字符串。
输入输出样例
输入
3 3 3
输出
Acute triangle
Isosceles triangle
Equilateral triangle
提示
当两短边的平方和大于一长边的平方,说明是锐角三角形。
当两短边的平方和等于一长边的平方,说明是直角三角形。
当两短边的平方和小于一长边的平方,说明是钝角三角形。
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] a = new int[3];
for(int i = 0; i < 3; i++){
a[i] = sc.nextInt();
}
Arrays.sort(a);
if(a[0] + a[1] <= a[2]){
System.out.println("Not triangle");
}else{
if (a[0] * a[0] + a[1] * a[1] == a[2] * a[2]){
System.out.println("Right triangle");
}else if (a[0] * a[0] + a[1] * a[1] > a[2] * a[2]){
System.out.println("Acute triangle");
}else if (a[0] * a[0] + a[1] * a[1] < a[2] * a[2]){
System.out.println("Obtuse triangle");
}
if (a[0] == a[1] || a[1] == a[2]) {
System.out.println("Isosceles triangle");
}
if (a[0] == a[1] && a[1] == a[2]){
System.out.println("Equilateral triangle");
}
}
}
}
题目描述
夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了。小玉家今天收到了一份电费通知单。小玉看到上面写:据闽价电 [2006]27 号规定,月用电量在 150 150 150 千瓦时及以下部分按每千瓦时 0.4463 0.4463 0.4463 元执行,月用电量在 151 ∼ 400 151\sim 400 151∼400 千瓦时的部分按每千瓦时 0.4663 0.4663 0.4663 元执行,月用电量在 401 401 401 千瓦时及以上部分按每千瓦时 0.5663 0.5663 0.5663 元执行;小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢。请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少。
输入格式
输入一个正整数,表示用电总计(单位以千瓦时计),不超过 10000 10000 10000。
输出格式
输出一个数,保留到小数点后 1 1 1 位(单位以元计,保留到小数点后 1 1 1 位)。
输入输出样例
输入
267
输出
121.5
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
double money = 0;
if(n <= 150){
money = n * 0.4463;
}else if(n >= 151 && n <= 400){
money = 150 * 0.4463 + (n - 150) * 0.4663;
}else{
money = 150 * 0.4463 + (400 - 150) * 0.4663 + (n - 400) * 0.5663;
}
System.out.printf("%.1f", money);
}
}
题目描述
有一只小鱼,它平日每天游泳 250 250 250 公里,周末休息(实行双休日),假设从周 x x x 开始算起,过了 n n n 天以后,小鱼一共累计游泳了多少公里呢?
输入格式
输入两个正整数 x , n x,n x,n,表示从周 x x x 算起,经过 n n n 天。
输出格式
输出一个整数,表示小鱼累计游泳了多少公里。
输入输出样例
输入
3 10
输出
2000
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int n = sc.nextInt();
//处理第一周
int exist1 = 0;
for(int i = x; i <= 7 && n > 0; i++){
if(i != 6 && i != 7){
exist1++;
}
n--;
}
//处理完整周数
int exist2 = n / 7 * 5;
n = n % 7;
//处理最后一周
int exist3 = n <= 5 ? n : 5;
int ans = exist1 + exist2 + exist3;
System.out.print(ans * 250);
}
}
题目描述
输入一组勾股数 a , b , c ( a ≠ b ≠ c ) a,b,c(a\neq b\neq c) a,b,c(a=b=c),用分数格式输出其较小锐角的正弦值。(要求约分。)
输入格式
一行,包含三个正整数,即勾股数 a , b , c a,b,c a,b,c(无大小顺序)。
输出格式
一行,包含一个分数,即较小锐角的正弦值
输入输出样例
输入
3 5 4
输出
3/5
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] a = new int[3];
for (int i = 0; i < 3; i++) {
a[i] = sc.nextInt();
}
Arrays.sort(a);
int g = gcd(a[2], a[0]);
System.out.print(a[0]/g + "/" + a[2]/g);
}
//辗转相除法求最大公因数, 参数a >= 参数b
//当a % b == 0时,最大公约数为b
//否则,递归调用gcd(b, a % b),直到余数为0
public static int gcd(int a, int b) {
return (a % b == 0) ? b : gcd(b, a % b);
}
}
题目描述
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 10 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30 30 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知 10 10 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入格式
输入包括两行数据。第一行包含 10 10 10 个 100 100 100 到 200 200 200 之间(包括 100 100 100 和 200 200 200)的整数(以厘米为单位)分别表示 10 10 10 个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个 100 100 100 到 120 120 120 之间(包含 100 100 100 和 120 120 120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出格式
输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
输入输出样例
输入
100 200 150 140 129 134 167 198 200 111
110
输出
5
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] a = new int[10];
for (int i = 0; i < 10; i++) {
a[i] = sc.nextInt();
}
int high = sc.nextInt() + 30;
int ans = 0;
for (int i = 0; i < 10; i++) {
if(a[i] <= high){
ans++;
}
}
System.out.print(ans);
}
}
题目描述
三个整数分别为 A , B , C A,B,C A,B,C。这三个数字不会按照这样的顺序给你,但它们始终满足条件: A < B < C A < B < C A<B<C。为了看起来更加简洁明了,我们希望你可以按照给定的顺序重新排列它们。
输入格式
第一行包含三个正整数 A , B , C A,B,C A,B,C,不一定是按这个顺序。这三个数字都小于或等于 100 100 100。第二行包含三个大写字母 A A A、 B B B 和 C C C(它们之间没有空格)表示所需的顺序。
输出格式
在一行中输出 A A A, B B B 和 C C C,用一个
(空格)隔开。
输入输出样例
输入
6 4 2
CAB
输出
6 2 4
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] a = new int[3];
for (int i = 0; i < 3; i++) {
a[i] = sc.nextInt();
}
Arrays.sort(a);
sc.nextLine();
String s = sc.nextLine();
for(int i = 0; i < 3; i++){
System.out.print(a[s.charAt(i) - 'A']);
System.out.print(" ");
}
}
}
题目描述
每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括 9 9 9 位数字、 1 1 1 位识别码和 3 3 3 位分隔符,其规定格式如 x-xxx-xxxxx-x
,其中符号 -
就是分隔符(键盘上的减号),最后一位是识别码,例如 0-670-82162-4
就是一个标准的 ISBN 码。ISBN 码的首位数字表示书籍的出版语言,例如 0 0 0 代表英语;第一个分隔符 -
之后的三位数字代表出版社,例如 670 670 670 代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。
识别码的计算方法如下:
首位数字乘以 1 1 1 加上次位数字乘以 2 2 2 ……以此类推,用所得的结果 $ \bmod 11$,所得的余数即为识别码,如果余数为 10 10 10,则识别码为大写字母 X X X。例如 ISBN 号码 0-670-82162-4
中的识别码 4 4 4 是这样得到的:对 067082162
这 9 9 9 个数字,从左至右,分别乘以 1 , 2 , … , 9 1,2,\dots,9 1,2,…,9 再求和,即 0 × 1 + 6 × 2 + … … + 2 × 9 = 158 0\times 1+6\times 2+……+2\times 9=158 0×1+6×2+……+2×9=158,然后取 158 m o d 11 158 \bmod 11 158mod11 的结果 4 4 4 作为识别码。
你的任务是编写程序判断输入的 ISBN 号码中识别码是否正确,如果正确,则仅输出 Right
;如果错误,则输出你认为是正确的 ISBN 号码。
输入格式
一个字符序列,表示一本书的 ISBN 号码(保证输入符合 ISBN 号码的格式要求)。
输出格式
一行,假如输入的 ISBN 号码的识别码正确,那么输出 Right
,否则,按照规定的格式,输出正确的 ISBN 号码(包括分隔符 -
)。
输入输出样例
输入
6-670-82162-4
输出
Right
已通过代码
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int sum = 0;
for (int i = 0, j = 1; i < s.length() - 2; i++) {
if (s.charAt(i) != '-') {
sum += (s.charAt(i) - '0') * j;
j++;
}
}
sum = sum % 11;
if (s.charAt(s.length() - 1) - '0' == sum || (sum == 10 && s.charAt(s.length() - 1) == 'X')) {
System.out.print("Right");
} else {
StringBuffer sb = new StringBuffer(s.substring(0, s.length() - 1));
if (sum != 10) {
sb.append(sum);
} else {
sb.append('X');
}
System.out.print(sb);
}
}
}