1.牛牛的10类人
2. 牛牛的四叶玫瑰数
3.牛牛的替换
4.牛牛的素数判断
笔者开头感想,如今大部分高校已经开学,当然笔者也不列外!但是由于疫情的原因,笔者被迫在家上网课学习!一脸忧愁,而这恰恰给了笔者自学的机会!相信笔者会加油滴!按照时间的步伐来追寻科班的脚步!C语言练习题集册见!
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;
}