码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist
目录
MT1161 N的零
(1)题目
输入正整数N,将N的所有零转换为5。没有0就原样输出。不考虑不合理的输入等特殊情况。
格式
输入格式: 输入正整数N 输出格式: 输出整型
样例1
输入: 5002 输出: 5552
(2)参考代码
#include<stdio.h> #include<string.h> int main() { char a[100]; scanf("%s", &a); for (int i=0;i<strlen(a);i++) { if (a[i] == '0') { a[i] = '5'; } } printf("%s", a); return 0; }
MT1162 数组最大公约数
(1)题目
给定一个由N个正整数组成的数组,求所有数组元素的最大公约数。
格式
输入格式: 第一行输入数组长度N,第二行输入数组元素,整型,空格分隔。 输出格式: 输出整型
样例1
输入格式: 3 2 4 6 输出格式: 2
(2)参考代码
#include<stdio.h> int main() { int N; scanf("%d", &N); int a[N]; for (int i=0;i<N;i++) { scanf("%d", &a[i]); } int min = a[0], flag; for (int i=0;i<N;i++) { if (min < a[i]) { min = a[i]; } } for (int i=min;i>=1;i--) { flag = 1; for (int j=0;j<N;j++) { if (a[j] % i != 0) { flag = 0; break; } } if (flag == 1) { printf("%d", i); break; } } return 0; }
MT1163 孪生质数
(1)题目
在质数中,若两个质数之差为2,我们称之为孪生质数,例如(3、5)(5、7),输入2个正整数,判断他是不是孪生质数,输出YES或者NO。
格式
输入格式: 输入整型 输出格式: 输出YES或者NO
样例1
输入: 2 6 输出: NO
(2)参考代码
#include<stdio.h> int main() { int a, b; scanf("%d %d", &a, &b); if ((b - a == 2 || a - b == 2) && (a != 0 && b != 0) && (a != 1 && b != 1)) { for (int i=2;i<a;i++) { if (a % i == 0) { printf("NO"); return 0; } for (int i=2;i<b;i++) { if (b % i == 0) { printf("NO"); return 0; } } } } else { printf("NO"); return 0; } printf("YES"); return 0; }
MT1164 最大数字
(1)题目
输入正整数N,找到小于或等于它的最大数字,并且其数字从高位到低位是非递减的顺序。
格式
输入格式: 输入正整数N 输出格式: 输出整型
样例1
输入格式: 200 输出格式: 199
(2)参考代码
#include<stdio.h> int main() { int n; scanf("%d", &n); int temp = n, min = temp % 10, flag = 1; while (temp) { if (temp % 10 <= min) { min = temp % 10; } else { flag = 0; } temp /= 10; } if (flag == 1) { printf("%d", n); } else { for (int i=n;i>0;i--) { temp = i; flag = 1; min = temp % 10; while (temp) { if (temp % 10 <= min) { min = temp % 10; } else { flag = 0; } temp /= 10; } if (flag == 1) { printf("%d", i); break; } } } return 0; }
MT1165 卡罗尔数
(1)题目
卡罗尔数是其值满足4n-2 (n+1) -1的整数(n为正整数)。输入正整数N判断它是不是卡罗尔数,输出YES或者NO。
格式
输入格式: 输入正整数N 输出格式: 输出YES或者NO
样例1
输入格式: 1 输出格式: YES
(2)参考代码
#include<stdio.h> int main() { int N, num; scanf("%d", &N); for (int i=2;;i++) { num = 2 * i - 3; if (num == N) { printf("YES"); break; } else if (num > N) { printf("NO"); break; } } return 0; }
MT1166 自守数
(1)题目
输入正整数N (N<10),判断该数是否为自守数输出YES或者NO。当且仅当一个数的平方以与该数相同的数字结尾时,该数称为自守数。
格式
输入格式: 输入正整数N 输出格式: 输出YES或者NO
样例1
输入格式: 5 输出格式: YES
(2)参考代码
#include<stdio.h> int main() { int N, n, temp_N, temp_n; scanf("%d", &N); int temp = N, count = 0; n = N * N; while (temp) { temp /= 10; count++; } for (int i=0;i<count;i++) { temp_N = N % 10; temp_n = n % 10; if (temp_N != temp_n) { printf("NO"); return 0; } N /= 10; n /= 10; } printf("YES"); return 0; }
MT1167自守数II
(1)题目
输入正整数N,检查该数是否为自守数输出YES或者NO。当且仅当一个数的平方以与该数相同的数字结尾时,该数称为自守数。
格式
输入格式: 输入正整数N 输出格式: 输出YES或者NO
样例1
输入: 76 输出: YES
(2)参考代码
#include<stdio.h> int main() { int N; scanf("%d", &N); int NN = N * N; while (N) { if (N % 10 != NN % 10) { printf("NO"); return 0; } N = N / 10; NN = NN / 10; } printf("YES"); return 0; }
MT1168 阶乘数
(1)题目
输入正整数N,找出它是否是一个等于其他数的阶乘值的数,输出YES或者NO。
格式
输入格式: 输入正整数N 输出格式: 输出YES或者NO
样例1
输入: 5 输出: NO
(2)参考代码
#include<stdio.h> int main() { int N, num = 1, i; scanf("%d", &N); // for (i=1;i<=N;i++) // { // num *= i; // if (num == N) // { // printf("YES"); // return 0; // } // } for (i=1;i<=(N/2)+1;i++) { num *= i; if (num == N) { printf("YES"); return 0; } } printf("NO"); return 0; }