1.牛牛的10类人
描述
世界上有10类人,1类是懂二进制的,另一类的不懂二进制的。牛牛是第10种人,因此他是懂二进制的。
牛牛把二进制数分成两种,一种是 1 的数量是偶数的,牛牛称之为 1 数,一种是 0 的数量是偶数的,牛牛称之为 0 数,如果一个数同时是 1 数和 0 数,那称之为 10 数。
输入描述:
第一行输入一个正整数 n 表示数的个数
第二行输入 n 个正整数,表示每个输入的数字
输出描述:
输出一行,对每个数字进行分类,即输出 0 或 1 或 10,如果既不是 0 类也不是 1 类则输出 100
示例1
输入:
2
1 10
输出:
0 10
int main() { int n; scanf("%d", &n); int m[n]; for (int i = 0; i < n; i++) { int o = 0, l = 0; scanf("%d ", &m[i]); int val = m[i]; while (val) { if (val % 2 == 1) l++; else o++; val /= 2; } if (l % 2 == 0 && o % 2 != 0) printf("1 "); else if (l % 2 != 0 && o % 2 == 0) printf("0 "); else if (l % 2 == 0 && o % 2 == 0) printf("10 "); else printf("100 "); } return 0; }
2. 牛牛的四叶玫瑰数
描述
牛牛最近学了水仙花数,但是他并不喜欢水仙花,因此他准备算出 [l,r] 区间内的四叶玫瑰数。
四叶玫瑰数:一个数的四个位置的数字的四次方加起来等于这个四位数本身的数。
输入描述:
第一行输入两个正整数,表示闭区间的两头
输出描述:
输出区间内的四叶玫瑰数,保证至少有一个
示例1
输入:
1 2000
输出:
1 1634
#include<math.h> int main() { int l, r; scanf("%d %d", &l, &r); for (int i = l; i <= r; i++) { int val = i, temp = 0; while (val) { temp += pow(val % 10, 4); val /= 10; } if (temp == i) printf("%d ", i); } return 0; }
3.牛牛的替换
描述
牛牛有一个长度为 n 的字符数组,他尝试把字符数组中其中一些字符替换成另一些字符。
输入描述:
第一行输入一个正整数 n 表示字符数组的长度,四个个字符分别 a1 和 a2 , a3 和 a4,表示把字符数组中 a1 全部替换成 a2,然后把 a3 全部替换成 a4(包括a1替换后产生的a2等于a3的情况)
第二行输入一个长度为 n 的字符数组。
输出描述:
输出替换后的字符数组
示例1
输入:
5 a b l i
fklwa
输出:
fkiwb
示例2
输入:
8 a o d e
nawcoder
输出:
nowcoeer
#include <stdio.h> #include <string.h> int main () { int n=0; char a1=0; char a2=0; char a3=0; char a4=0; scanf("%d %c %c %c %c",&n,&a1,&a2,&a3,&a4); char arr[n]; scanf("%s",arr); int sz=strlen(arr); int i=0; for(i=0;i<sz;i++) { if(arr[i]==a1) { arr[i]=a2; } if(arr[i]==a3) { arr[i]=a4; } } printf("%s\n",arr); return 0; }
4.牛牛的素数判断
描述
牛牛刚刚学了素数的定义:素数值指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数
牛牛想知道输入的 n 个数分别是不是素数
输入描述:
第一行输入一个正整数 n ,表示后续要输入的数的数量。
后续 n 行每行输入一个正整数,表示需要判断的数。
输出描述:
输入的第 2 到第 n+1 行每行输出一次,如果输入的是素数则输出 true ,否则输出 false
示例1
输入:
3
2
3
6
输出:
true
true
false
#include <stdio.h> int sushu(int score) { int i=0; int flag=0; for(i=2;i<score;i++) { if(score%i==0) { flag=1; //1不是素数! } } return flag; } int main () { int n=0; scanf("%d",&n); int score=0; int i=0; for(i=0;i<n;i++) { scanf("%d",&score); if(sushu(score)==1) { printf("false\n"); } else printf("true\n"); } return 0; }