牛客网C/C++语言基础答案

1.你好,牛客

#include<bits/stdc++.h>
using namespace std;

int main(){

    printf("hello nowcoder");

    return 0;
}

2.牛牛学说话之-整数

#include<bits/stdc++.h>
using namespace std;

int main(){
    
    int a;
    scanf("%d", &a);
    printf("%d", a);

    return 0;
}

3.牛牛学说话之-浮点数

#include<bits/stdc++.h>
using namespace std;

int main(){

    double a;
    scanf("%lf", &a);
    printf("%.3lf", a);

    return 0;
}

4.牛牛学加法

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a,b;
    scanf("%d %d", &a, &b);
    printf("%d", a + b);

    return 0;
}

5.牛牛学除法

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a,b;
    scanf("%d %d", &a, &b);
    printf("%d", a / b);

    return 0;
}

6.牛牛学取余

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a,b;
    scanf("%d %d", &a, &b);
    printf("%d", a % b);

    return 0;
}

7.整数的个位

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a;
    scanf("%d", &a);
    printf("%d", a % 10);

    return 0;
}

8.整数的十位

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a;
    scanf("%d", &a);
    printf("%d", (a / 10) % 10);

    return 0;
}

9.浮点除法

#include<bits/stdc++.h>
using namespace std;

int main(){

    double a, b;
    scanf("%lf %lf", &a, &b);
    printf("%.3lf", a / b);
    
    return 0;
}

10.倒序

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    printf("%d %d %d", c, b, a);
    
    return 0;
}

11.分钟计算

#include<bits/stdc++.h>
using namespace std;

int main(){

    int h1, m1, h2, m2;
    scanf("%d %d\n%d %d", &h1, &m1, &h2, &m2);
    int sum = (h2 - h1) * 60 + m2 - m1;
    printf("%d", sum);
    
    return 0;
}

12.牛牛学梯形

#include<bits/stdc++.h>
using namespace std;

int main(){

    double u,d,h,s;
    scanf("%lf %lf %lf", &u, &d, &h);
    s= (u + d) * h / 2;
    printf("%.3lf",s);

    return 0;
}

13.牛牛学圆

#include<bits/stdc++.h>
using namespace std;

int main(){

    double r;
    scanf("%lf", &r);

    const double PI = 3.14159;

    double l = 2 * PI * r;
    double s = PI * r * r;

    printf("%lf\n%lf", l, s);
    
    return 0;
}

14. 牛牛学矩形

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a, b;
    scanf("%d %d", &a, &b);

    int l = 2 * (a + b);
    int s = a * b;

    printf("%d\n%d", l, s);
    
    return 0;
}

15.牛牛学立体

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);

    int l = 2 * (a * b + a * c + b * c);
    int s = a * b * c;

    printf("%d\n%d", l, s);
    
    return 0;
}

16.数字反转之-三位数

#include<bits/stdc++.h>
using namespace std;

int main(){

    int x;
    scanf("%d", &x);

    int a = x / 100;
    int b = x / 10 % 10;
    int c = x % 10;

    printf("%d%d%d", c, b, a);
    
    return 0;
}

17.上下取整

#include<bits/stdc++.h>
using namespace std;

int main(){

    double x;
    scanf("%lf", &x);

    printf("%.0lf\n%.0lf", floor(x), ceil(x));
    
    return 0;
}

18.求平均值

#include<bits/stdc++.h>
using namespace std;

int main(){

    double a, b, c;
    scanf("%lf %lf %lf", &a, &b, &c);

    printf("%lf", (a + b + c) / 3);
    
    return 0;
}

19.平方根

#include<bits/stdc++.h>
using namespace std;

int main(){

    double x;
    scanf("%lf", &x);

    printf("%.0lf", floor(sqrt(x)));
    
    return 0;
}

20.温度转换

#include<bits/stdc++.h>
using namespace std;

int main(){

    double f;
    scanf("%lf", &f);

    double c = 5.0 / 9.0 * (f - 32);
    printf("%.3lf", c);
    
    return 0;
}

21.计算机内存

#include<bits/stdc++.h>
using namespace std;

int main(){

    int x;
    scanf("%d", &x);

    int ans = x * 1024 * 1024 / 4;
    printf("%d", ans);
    
    return 0;
}

22.四舍五入

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);
    
    int ans = (n + 5) / 10 * 10;
    printf("%d", ans);
    
    return 0;
}

23.加法模拟器

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    c= a + b;
    printf("%d+%d=%d\n", a, b, c);
    printf("%7d\n+%6d\n-------\n%7d",a,b,c);
    
    return 0;
}

24.判断奇偶

#include<bits/stdc++.h>
using namespace std;

int main(){

    int x;
    scanf("%d", &x);

    if((x % 2) == 1) printf("odd");
    else printf("even");
    
    return 0;
}

25.一大一小

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a, b;
    scanf("%d %d", &a, &b);
    if(a < b){
        int c = a;
        a = b;
        b = c;
    }
    printf("%d\n%d", a, b);
    
    return 0;
}

26.牛妹数

#include<bits/stdc++.h>
using namespace std;

int main(){

    int x;
    scanf("%d", &x);
    if(x % 2 == 0 && x > 50){
        puts("yes");
    }else{
        puts("no");
    }
    
    return 0;
}

27.牛可乐数

#include<bits/stdc++.h>
using namespace std;

int main(){

    int x;
    scanf("%d", &x);
    if(x % 2 == 0 || x > 50){
        puts("yes");
    }else{
        puts("no");
    }
    
    return 0;
}

28.判断闰年

#include<bits/stdc++.h>
using namespace std;

int main(){

    int year;
    scanf("%d", &year);
    // 普通闰年:公历年份是4的倍数的,且不是100的倍数,为普通闰年(如2004年、2020年就是闰年)。
    bool condition1 = (year % 4 == 0 && year % 100 != 0);
    // 世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900年不是世纪闰年,2000年是世纪闰年)
    bool condition2 = (year % 400 == 0);
    if (condition1 || condition2) {
        puts("yes");
    } else {
        puts("no");
    }
    
    return 0;
}

29.吃瓜群众

#include<bits/stdc++.h>
using namespace std;

int main(){

    int x;
    scanf("%d", &x);
    if(x % 2 == 0 && x > 3){
        puts("YES, you can divide the watermelon into two even parts.");
    }else{
        puts("NO, you can't divide the watermelon into two even parts.");
    }
    
    return 0;
}

30.最大最小值

#include<bits/stdc++.h>
using namespace std;

int main(){
    int a[3];
    for(int i=0;i<3;i++) scanf("%d", &a[i]);
    sort(a,a+3);
    printf("The maximum number is : %d\n", a[2]);
    printf("The minimum number is : %d\n", a[0]);

    return 0;
}

31.牛牛学数列

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);

    int ans = 0, temp = 1;
    for(int i=1;i<=n;i++){
        ans += temp * i;
        temp = -temp;
    }

    printf("%d", ans);
    
    return 0;
}

32.牛牛学数列2

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);

    double ans = 0;
    for(int i=1;i<=n;i++){
        ans += 1 / double(i);
    }

    printf("%lf", ans);

    return 0;
}

33.牛牛学数列3

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);

    double ans = 0;
    int temp = 1, cnt = 0;
    for(int i=1;i<=n;i++){
        cnt += temp * (2 * i - 1);
        temp = -temp;
        ans += 1 / double(cnt);
    }

    printf("%.3lf", ans);

    return 0;
}

34.牛牛学数列4

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);

    int ans = 0, cnt = 0;
    for(int i=1;i<=n;i++){
        cnt += i;
        ans += cnt;
    }

    printf("%d", ans);

    return 0;
}

35.牛牛学数列5

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);

    int dp[50];
    memset(dp, 0, sizeof(dp));

    dp[1] = 1, dp[2] = 1, dp[3] = 2;
    for(int i=4;i<=n;i++) dp[i] = dp[i - 1] + dp[i - 2];

    printf("%d", dp[n]);

    return 0;
}

36.牛牛学数列6

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);

    int dp[25];
    memset(dp, 0, sizeof(dp));

    dp[1] = 0, dp[2] = 1, dp[3] = 1;
    for(int i=4;i<=n;i++) dp[i] = dp[i - 1] + 2 * dp[i - 2] + dp[i - 3];

    printf("%d", dp[n]);

    return 0;
}

37.幸运数字7

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);

    int ans = 0;
    for(int i=1;i<=n;i++){
        if(i % 7 == 0){
            ans += i;
        }
    }
    printf("%d", ans);

    return 0;
}

38.魔法数字变换

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);

    int ans = 0;
    while(n != 1){
        if(n % 2 == 1) n = 3 * n + 1;
        else n /= 2;
        ans++;
    }

    printf("%d", ans);

    return 0;
}

39.更相减损术

#include<bits/stdc++.h>
using namespace std;

int gcd(int a, int b){
    return b == 0 ? a : gcd(b, a % b);
}

int main(){

    int a, b;
    scanf("%d %d", &a, &b);

    while(a != b){
        if(a > b) a -= b;
        else b -= a;
    }

    printf("%d", a);

    return 0;
}

40.多组输入a+b

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a, b;
    while(~scanf("%d %d", &a, &b)){
        printf("%d\n", a + b);
    }

    return 0;
}

41.多组输入a+b II

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);

    int a, b;
    for(int i=0;i<n;i++){
        scanf("%d %d", &a, &b);
        printf("%d\n", a + b);
    }

    return 0;
}

42.多组数据a+b III

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a, b;
    while(~scanf("%d %d", &a, &b), a && b){
        printf("%d\n", a + b);
    }

    return 0;
}

43.数位五五

#include<bits/stdc++.h>
using namespace std;

int main(){

    int x, y;
    scanf("%d %d", &x, &y);

    int ans = 0;
    for(int i=x;i<=y;i++){
        int temp = i;
        int val = 0;
        while(temp){
            val += (temp % 10);
            temp /= 10;
        }
        if((val % 5) == 0) ans++;
    }
    printf("%d", ans);

    return 0;
}

44.回文对称数

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);
    for(int i=1;i<=n;i++){
        string str = to_string(i);
        int flag = 0;
        for(int i=0,j=str.size()-1;i<j;i++,j--){
            if(str[i] != str[j]) flag = 1;
            if(flag) break;
        }
        if(!flag) printf("%d\n", i);
    }

    return 0;
}

45.3和5

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);
    for(int i=1;i<=n;i++){
        if((i % 3) == 0){
            string str = to_string(i);
            for(int j=0;j<str.size();j++){
                if(str[j] == '5'){
                    printf("%d\n", i);
                    break;
                }
            }
        }
    }

    return 0;
}

46.3和5和7

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);
    for(int i=1;i<=n;i++){
        if((i % 3) == 2 && (i % 5) == 3 && (i % 7) == 2){
            printf("%d\n", i);
        }
    }

    return 0;
}

47.四位数

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);
    for(int i=1000;i<=n;i++){
        int AB = i / 100;
        int CD = i % 100;
        if((AB + CD) * (AB + CD) == i){
            printf("%d\n", i);
        }
    }

    return 0;
}

48.约数之和

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);

    int ans = 0;
    for(int i=1;i<=n;i++){
        if(n % i == 0) ans += i;
    }
    printf("%d", ans);

    return 0;
}

49.零钱兑换

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);

    int ans = 0;
    for(int i=0;i<=(n/1);i++){
        for(int j=0;j<=(n/2);j++){
            for(int k=0;k<=(n/5);k++){
                if(i * 1 + j * 2 + k * 5 == n) ans++;
            }
        }
    }
    printf("%d", ans);

    return 0;
}

50.选村长

#include<bits/stdc++.h>
using namespace std;

int main(){

    int x;
    int A = 0, B = 0, C = 0, cnt = 0;
    while(~scanf("%d", &x)){
        if(x == 1) A++;
        else if(x == 2) B++;
        else if(x == 3) C++;
        cnt++;
    }
    printf("A=%d\n", A);
    printf("B=%d\n", B);
    printf("C=%d\n", C);
    printf("Tot=%d\n", A + B + C);
    
    if(A >= (cnt + 1) / 2){
        printf("A-yes\n");
    }else if(B >= (cnt + 1) / 2){
        printf("B-yes\n");
    }else if(C >= (cnt + 1) / 2){
        printf("C-yes\n");
    }else{
        printf("all-NO\n");
    }

    return 0;
}

51.数位之和

#include<bits/stdc++.h>
using namespace std;

int main(){

    int x;
    scanf("%d", &x);
    int ans = 0;
    while(x){
        ans += (x % 10);
        x /= 10;
    }
    printf("%d", ans);

    return 0;
}

52.素数判断

#include<bits/stdc++.h>
using namespace std;

int main(){

    int T;
    scanf("%d", &T);
    while(T--){
        int n;
        scanf("%d", &n);
        int flag = 0;
        for(int i=2;i<=sqrt(n);i++){
            if((n % i) == 0){
                flag = 1;
                break;
            }
        }
        if(n == 1) flag = 1;
        if(n == 2) flag = 0;
        
        if(flag) puts("No");
        else puts("Yes");
    }

    return 0;
}

53.字符统计

#include<bits/stdc++.h>
using namespace std;

int main(){

    char c;
    c = getchar();
    int a = 0, b = 0, d = 0;
    while(c != '?'){
        if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) a++;
        else if(c >= '0' && c <= '9') b++;
        else d++;
        c = getchar();
    }

    printf("Letters=%d\n", a);
    printf("Digits=%d\n", b);
    printf("Others=%d\n", d);

    return 0;
}

54.金字塔

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    while(~scanf("%d", &n)){
    
        for(int i=1;i<=n;i++){
            for(int j=1;j<=(n-i);j++){
                printf(" ");
            }
            for(int j=1;j<=2*i-1;j++){
                printf("*");
            }
            for(int j=1;j<=(n-i);j++){
                printf(" ");
            }
            printf("\n");
        }
    }

    return 0;
}

55.上下金字塔

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    while(~scanf("%d", &n)){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n-i;j++) printf(" ");
            for(int j=1;j<=2*i-1;j++) printf("*");
            printf("\n");
        }
        for(int i=n-1;i>=1;i--){
            for(int j=1;j<=n-i;j++) printf(" ");
            for(int j=1;j<=2*i-1;j++) printf("*");
            printf("\n");
        }
    }

    return 0;
}

56.阶乘计算

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);

    int ans = 0, temp = 1;;
    for(int i=1;i<=n;i++){
        temp *= i;
        ans += temp;
    }
    printf("%d", ans);

    return 0;
}

57.乘法表

#include<bits/stdc++.h>
using namespace std;

int main(){

    for(int i=1;i<=9;i++){
        for(int j=1;j<=i;j++){
            printf("%d*%d=%2d ", j, i, i * j);
        }
        printf("\n");
    }

    return 0;
}

58.数字三角形

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);
    
    int k = 1;
    for(int i=1;i<=n;i++){    
        for(int j=1;j<=i;j++){
            printf("%4d", k++);
        }
        printf("\n");
    }

    return 0;
}

59.字符金字塔

#include<bits/stdc++.h>
using namespace std;

int main(){

    char ch;
    scanf("%c", &ch);
    int n = ch - 'A';

    for(int i=0;i<=n;i++){
        int j = n - i;
        while(j--) printf(" ");
        for(int k=0;k<=2*i;k++){
            int t;
            if(k <= i) t = k;
            else t = k - 2*(k-i);
            char c = 'A' + t;
            printf("%c", c);
        }
        printf("\n");
    }

    return 0;
}

60.打印质数表

#include<bits/stdc++.h>
using namespace std;

bool check(int x){
    if(x == 0 || x == 1) return false;
    for(int i=2;i*i<=x;i++){
        if(x % i == 0) return false;
    }
    return true;
}

int main(){

    int n;
    scanf("%d", &n);

    for(int i=1;i<=n;i++){
        if(check(i)) printf("%d ", i);
    }

    return 0;
}

61.牛牛学数列7

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

int main(){

    int n;
    scanf("%d", &n);

    ll dp[n];

    memset(dp, 0, sizeof(dp));
    dp[1] = 0, dp[2] = 1, dp[3] = 1;
    for(int i=4;i<=n;i++) dp[i] = dp[i-1] + dp[i-2];

    printf("%lld", dp[n]);

    return 0;
}

62.箱子归位

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a[6][6];
    memset(a, 0, sizeof(a));

    int x, y;
    for(int i=1;i<=5;i++){
        for(int j=1;j<=5;j++){
            scanf("%d", &a[i][j]);
            if(a[i][j]){
                x = i;
                y = j;
            }
        }
    }

    int ans = abs(x - 3) + abs(y - 3);
    printf("%d", ans);

    return 0;
}

63.广告屏幕

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n, ans = 0;
    scanf("%d", &n);
    for(int i=1;i*i<=n;i++){
        if(n % i == 0) ans = max(ans, i);
    }

    printf("%d %d", ans, n / ans);

    return 0;
}

64.不找零钱

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);

    int flag = 0;
    for(int i=0;i<=(c/a)+1;i++){
        for(int j=0;j<=(c/b)+1;j++){
            if(i*a + j*b == c){
                flag = 1;
            }
        }
    }
    
    if(flag) puts("Yes");
    else puts("No");

    return 0;
}

65.最大公约数

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

ll gcd(ll a,ll b){
	return b == 0 ? a : gcd(b,a%b);
}

ll lcm(ll a,ll b){
	return a * b / gcd(a, b);
}

int main(){

    ll a, b;
    scanf("%lld %lld", &a, &b);
    printf("%lld", gcd(a, b));

    return 0;
}

66.先进后出

#include<bits/stdc++.h>
using namespace std;

int main(){

    int T, n, a[105];
    scanf("%d", &T);
    while(T--){
        memset(a, 0, sizeof(a));
        scanf("%d", &n);
        for(int i=0;i<n;i++){
            scanf("%d", &a[i]);
        }
        for(int i=n-1;i>=0;i--){
            printf("%d ", a[i]);
        }
        printf("\n");
    }

    return 0;
}

67.强强联合

#include<bits/stdc++.h>
using namespace std;

int cmp(int a, int b){
    return a > b;
}

int main(){

    int n, m;
    int a[105], b[105];
    scanf("%d %d", &n, &m);

    memset(a, 0, sizeof(a));
    memset(b, 0, sizeof(b));

    for(int i=0;i<n;i++) scanf("%d", &a[i]);
    for(int i=0;i<m;i++) scanf("%d", &b[i]);

    sort(a, a+n, cmp);
    sort(b, b+m, cmp);

    printf("%d", a[0] + b[0]);

    return 0;
}

68.定位查找

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n, m;
    int a[25];
    while(~scanf("%d", &n)){
        memset(a, 0, sizeof(a));
        for(int i=0;i<n;i++) scanf("%d", &a[i]);
        scanf("%d", &m);

        int flag = 0, i;
        for(i=0;i<n;i++){
            if(a[i] == m){
                flag = 1;
                break;
            } 
        }
        if(flag) printf("%d\n", i);
        else printf("No\n");
    }

    return 0;
}

69.辅导计划

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    int a[105];
    while(~scanf("%d", &n)){
        memset(a, 0, sizeof(a));
        int cnt = 0;
        for(int i=0;i<n;i++){
            scanf("%d", &a[i]);
            cnt += a[i];
        }
        for(int i=0;i<n;i++){
            if(a[i] < cnt * 1.0 / n) printf("%d ", a[i]);
        }
        printf("\n");
    }

    return 0;
}

70.增高防护塔

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n, m, a, b, c, h[105];
    
    scanf("%d", &n);
    for(int i=1;i<=n;i++) scanf("%d", &h[i]);
    scanf("%d", &m);
    for(int i=1;i<=m;i++){
        scanf("%d %d %d", &a, &b, &c);
        for(int j=a;j<=b;j++){
            h[j] += c;
        }
    } 
    for(int i=1;i<=n;i++) printf("%d ", h[i]);

    return 0;
}

71.超半的数

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n, a[1005];
    scanf("%d", &n);
    for(int i=0;i<n;i++) scanf("%d", &a[i]);
    sort(a, a+n);
    printf("%d\n", a[n / 2]);

    return 0;
}

72.复制输出

#include<bits/stdc++.h>
using namespace std;

int main(){

    string str;
    getline(cin, str);
    cout<<str<<endl;

    return 0;
}

73.字符数量

#include<bits/stdc++.h>
using namespace std;

int main(){

    string t;
    int a[30];
    memset(a, 0, sizeof(a));

    while(cin >> t){
        for(int i=0;i<t.size();i++){
            a[t[i] - 'a']++;
        }
    }
    for(int i=0;i<26;i++){
        if(a[i] == 0) continue;
        else{
            printf("%c:%d\n", char(i + 'a'), a[i]);
        }
    }

    return 0;
}

74.质数数量

#include<bits/stdc++.h>
using namespace std;

const int N = 1000005;
int a[N];
int prime[N];
void init(){
    for(int i=2;i<N;i++) prime[i]=1;//先全部初始化为素数
    for(int i=2;i*i<N;i++){
        if(prime[i]){//如果i是质数
            for(int j=i*i;j<N;j+=i){//从i的两倍开始的所有的倍数(i*i也行)
                prime[j] = 0;
            }
        }
    }
}

int main(){

    init();
    for(int i=1;i<=1000000;i++){
        a[i] = a[i-1] + prime[i];
    }
    int T, n;
    scanf("%d", &T);
    while(T--){
        scanf("%d", &n);
        printf("%d\n", a[n]);
    }

    return 0;
}

75.约瑟夫环

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n, k, m;
    scanf("%d %d %d", &n, &k, &m);

    vector<int> t;
    int pos = k;
    for(int i=0;i<n;i++){
        t.push_back(i);
    }
    for(int i=1;i<=n-1;i++){
        pos = (pos + (m - 1)) % t.size();
        t.erase(t.begin() + pos);
    }
    printf("%d", t[0]);

    return 0;
}

76.删除元素

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n, m, a[25];
    while(~scanf("%d", &n)){
        for(int i=0;i<n;i++) scanf("%d", &a[i]);
        scanf("%d", &m);

        int flag = 0;
        for(int i=0;i<n;i++){
            if(a[i] == m && !flag){
                flag = 1;
                continue;
            } 
            printf("%d ", a[i]);
        }
        printf("\n");
    }

    return 0;
}

77.频繁元素

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);
    map<int, int> m;

    int x, ans = 0, cnt = 0;
    for(int i=0;i<n;i++){
        scanf("%d", &x);
        m[x]++;
        if(m[x] > cnt){
            cnt = m[x];
            ans = x;
        }
    }

    printf("%d", ans);

    return 0;
}

78.回型矩阵

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);
    int a[20][20];
    int p=0,k=1,q=n-1;
    while(k <= n * n){
        for(int i=p;i<=q;i++) a[p][i] = k++;
        for(int i=p+1;i<=q;i++) a[i][q] = k++;
        for(int i=q-1;i>=p;i--) a[q][i] = k++;
        for(int i=q-1;i>p;i--) a[i][p] = k++;
        p++;
        q--;
    }

    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }

    return 0;
}

79.蛇形矩阵

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n;
    scanf("%d", &n);

    int sum = 0;
    int a[1000][1000];
    for(int i=0;i<2*n-1;i++){
        for(int j=i;j>=0;j--){
            if(j < n && i - j < n) sum++;
            if(i % 2 != 0) a[i - j][j] = sum;
            else a[j][i - j] = sum;
        }
    }

    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }

    return 0;
}

80.扫雷

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n, m;
    scanf("%d %d", &n, &m);

    char a[105][105];
    for(int i=1;i<=n;i++){
        scanf("%s", a[i] + 1);
    }

    int cnt;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(a[i][j] != '*'){
                cnt = 0;
                if(a[i-1][j] =='*') cnt++;
                if(a[i-1][j-1] == '*') cnt++;
                if(a[i-1][j+1] == '*') cnt++;
                if(a[i][j-1] == '*') cnt++;
                if(a[i][j+1] == '*') cnt++;
                if(a[i+1][j] =='*') cnt++;
                if(a[i+1][j-1] == '*') cnt++;
                if(a[i+1][j+1] == '*') cnt++;
                a[i][j] = '0' + cnt;
            } 
        }
    }

	for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            printf("%c", a[i][j]);
        }
		printf("\n");
    }

    return 0;
}

81.字符框

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n, m;
    scanf("%d %d", &n, &m);

    char str[55][55];
    for(int i=0;i<n;i++) scanf("%s", str[i]);

    int res = 0, target = 'f'*'a'*'c'*'e';
    for(int i=0;i<n-1;i++){
        for(int j=0;j<m-1;j++){
            if(str[i][j] * str[i][j+1] * str[i+1][j] * str[i+1][j+1] == target) res++;
        }
    }
    printf("%d\n", res);

    return 0;
}

82.神仙打架

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n, m;
    scanf("%d %d", &n, &m);

    int a[105][105];
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            scanf("%1d", &a[i][j]);
        }
    }
    
    int flag[105];
    memset(flag, 0, sizeof(flag));
    int val;
    int ans = 0;
    for(int j=0;j<m;j++){
        val = 0;
        for(int i=0;i<n;i++){
            if(val < a[i][j]){
                val = a[i][j];
            }
        }
        for(int i=0;i<n;i++){
            if(val == a[i][j] && !flag[i]){
                flag[i] = 1;
                ans++;
            }
        }
    }
    printf("%d\n", ans);

    return 0;
}

83.广场维修

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n, m, a;
	scanf("%d %d %d", &n, &m, &a);

	int x, y;
	x = n / a;
	y = m / a;
	if(n % a) x++;
	if(m % a) y++;

	int ans = x * y;
	printf("%d", ans);

    return 0;
}

84.过山车

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

int main(){

    ll n, k;
	scanf("%lld %lld", &n, &k);

	if(n == k || k == 0){
		printf("0 0");
	}else if(3 * k <= n){
		printf("1 %lld", 2 * k);
	}else{
		printf("1 %lld", n - k);
	}

    return 0;
}

85.无人驾驶

#include<bits/stdc++.h>
using namespace std;

int main(){

    int a, b, m;
	scanf("%d %d %d", &a, &b, &m);

	m = m - (abs(a) + abs(b));

	if(m < 0 || m & 1) puts("No");
	else puts("Yes");

    return 0;
}

86.排队领水

#include<bits/stdc++.h>
using namespace std;

int main(){

    int n, a, b;
	scanf("%d %d %d", &n, &a, &b);

	int ans;
	if(a + b != n) ans = b + 1;
	else if(a + b == n) ans = b;

	printf("%d", ans);

    return 0;
}

87.送水

#include<bits/stdc++.h>
using namespace std;

int main(){

    int Y, k, n;
	scanf("%d %d %d", &Y, &k, &n);

	if(Y > n) printf("-1");
	
	int flag = 1;
	for(int i=1;i<=n/k;i++){
		if(i * k < Y) continue;
		else{
			printf("%d ", i * k - Y);
			flag = 0;
		}
	}

	if(flag) printf("-1");

    return 0;
}
  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
程序设计教程通常会涵盖编程的基本概念、语法、算法和数据结构等内容。在C/C++语言编程方面,它们是广泛使用的编程语言,可用于开发不同类型的应用程序,从简单的命令行程序到复杂的桌面应用和嵌入式系统。 在程序设计教程中,首先会介绍C/C++语言的基本语法,包括变量、数据类型、运算符、控制结构和函数等。学习者会通过编写简单的程序来理解如何声明变量、使用运算符进行计算、使用条件语句和循环结构来控制程序流程,以及如何定义和调用函数。 接下来,教程会介绍C/C++语言的核心概念,如指针、数组和字符串等。学习者会了解如何使用指针来操作内存地址,如何使用数组来存储和处理多个数据,以及如何处理字符串和字符操作。 在更高级的教程中,会介绍C/C++语言的面向对象编程(OOP)概念,如类、对象、继承和多态等。学习者将学习如何使用类和对象来组织和管理程序,如何使用继承和多态来实现代码的重用和灵活性。 此外,教程还可能包含常用算法和数据结构的介绍,如排序算法、查找算法和链表等。学习者可以学习如何实现这些算法和数据结构,并将其应用于解决实际问题。 总之,在C/C++语言的程序设计教程中,学习者将通过理论和实践相结合的方式,逐步掌握编程的基础知识和技能,从而能够独立开发和维护各种类型的程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值