Hammann的签到题
Problem Description
期末考试结束了,Hammann发现很多人挂了高数,只能等着重修,还要交200元的重修费。现在Hammann有了所有人的高数成绩,Hammann想知道如果所有挂科的人都在第二年重修,学校收到多少重修费?
挂科是指一门课的分数小于60分。
Input
第一行一个整数n,表示考试的人数。(1<n<=1000)
接下来n行,每行表示每个人的成绩。
学生的成绩为0-100(包括0和100)之间的整数。
Output
一行,表示学校能收到多少重修费。
Sample Input
4
60
56
100
59
Sample Output
400
标程
#include <stdio.h>
int main() {
int n, a, ans = 0;
scanf("%d", &n);
while (n--) {
scanf("%d", &a);
if (a < 60) ans += 200;
}
printf("%d\n", ans);
return 0;
}
Hammann的计数题
Problem Description
Hammann看到了一道题,他觉得非常容易想直接摸了,于是他找到了你。你能帮助他解决这道题吗?
如题:有一个十进制整数a和一个十进制数b,一个整数x(范围[0~9]),x在a和b之间(包括a和b本身)的所有数里,每一位出现的次数是奇数还是偶数呢?
Input
多组输入,每组输入各占一行。每行三个数字a,b,x(0<=a,b<=100,0<=x<=9)。 程序执行到文件结束。
Output
对于每个测试样例,输出一行。
如果出现的次数为奇数,输出"Yes",否则输出"No"(输出结果不包含双引号)。
Sample Input
1 1 1
11 2 1
99 99 9
30 40 0
Sample Output
Yes
Yes
No
No
标程
#include <stdio.h>
int main() {
int a, b, c;
while (~scanf("%d%d%d", &a, &b, &c)) {
if (a > b) {
int temp = a;
a = b;
b = temp;
}
int cnt = 0;
for (int i = a; i <= b; i++) {
int temp = i;
do {
if (temp % 10 == c) cnt++;
temp /= 10;
} while (temp);
}
if (cnt % 2 == 0)
printf("No\n");
else
printf("Yes\n");
}
return 0;
}
高飞的签到题
Problem Description
质数(prime number)又称素数,有无限个,质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
现在高飞大佬想要你写一个程序来判断一个数是不是质数。
Input
本题有多组数据(其实是25组),一组数据占一行。
每行有一个整数n
0<=n<=100000000
Output
对于每个询问n,输出一行,如果n是质数,输出"Yes",否则输出"No"(输出结果不含双引号)。
Sample Input
7
114514
Sample Output
Yes
No
标程
#include <stdio.h>
int isprime(int x) {
if (x < 2) return 0;
for (int i = 2; i * i <= x; ++i)
if (x % i == 0) return 0;
return 1;
}
int main() {
int n;
while (~scanf("%d", &n)) {
if (isprime(n))
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
高飞的妹子大军
Problem Description
众所周知,高飞大佬在时间管理方面颇有天赋,每天都有海量的妹子来和他一起玩游戏。由于人数实在太多,统计人数之和成为了高飞大佬头疼的问题。
高飞大佬会告诉你第一天和第二天找来他玩游戏的妹子人数,现在你要给出这两天里一共有多少妹子来和他一起玩游戏。
注意:和高飞大佬玩游戏的妹子数量只会一天比一天多。
Input
第一行包含一个整数T (1≤T≤10)-测试用例的数量。下一个T行以下列格式描述测试用例:
每行包括两个不含有前导0的非负整数。
Output
输出T行,每行一个整数,分别表示两天里和高飞大佬玩游戏的妹子人数。
Sample Input
2
1 2
112233445566778899 998877665544332211
Sample Output
3
1111111111111111110
Hint
每天和高飞大佬玩游戏的妹子最多可达人,远超C语言的32位和64位整数表示范围。
标程
#include <stdio.h>
#include <string.h>
const int N = 1005;
char a[N], b[N];
int main() {
int T;
scanf("%d", &T);
while (T--) {
scanf("%s%s", b, a);
char c[N] = {0};
int lena = strlen(a), lenb = strlen(b);
int temp = 0, p = lena - 1;
for (int i = lenb - 1; i >= 0; --i) {
int xa = a[p] - '0', xb = b[i] - '0';
int x = xa + xb + temp;
c[p--] = x % 10 + '0';
if (x >= 10) temp = 1;
else temp = 0;
}
while (p >= 0) {
int x = a[p] - '0' + temp;
c[p--] = x % 10 + '0';
if (x >= 10) temp = 1;
else temp = 0;
}
if (temp) putchar('1');
puts(c);
}
return 0;
}