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

每天和高飞大佬玩游戏的妹子最多可达10100010^{1000}人,远超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;
}