CCF题目
对于任意给定的一个正整数,计算其因数个数。
输入样例:
6
输出样例:
4
说明:
1、2、3、6都是6的因数。因此,输出4。
#include<stdio.h> #include<math.h> int main(void){ int a; scanf("%d",&a); int i,s=0; for(i=1;i<=sqrt(a);i++){ if(a%i==0){ if(i==sqrt(a)) s+=1; else s+=2; } } printf("%d",s); return 0; }
在传递信息的过程中,为了加密,有时需要按一定规则将文本转换成密文发送出去。有一种加密规则是这样的:
1. 对于字母字符,将其转换成其后的第3个字母。例如:A→D,a→d,X→A,x→a;
2. 对于非字母字符,保持不变。
#include<stdio.h> #include<string.h> int main(void){ char m[100]={0}; scanf("%s",m); int i; for(i=0;i<sizeof(m)-1;i++){ if(m[i]>='a'&&m[i]<='z'){ //小写字母a-z 97-122 m[i] = m[i]+3; if(m[i]/122!=0){ m[i]=96+m[i]%122; } printf("%c",m[i]); } else if(m[i]>='A'&&m[i]<='Z'){ //大写字母A-Z 65-90 m[i] = m[i]+3;if(m[i]/90!=0){ m[i]=64+m[i]%90; } printf("%c",m[i]); } else printf("%c",m[i]); } return 0; }
角谷猜想又称冰雹猜想。它首先流传于美国,不久传到欧洲,后来由一位叫角谷的日本人带到亚洲。因为被称为角谷猜想。
通俗地讲,角谷猜想的内容是这样的:任意给定一个自然数n,当n是偶数时,将它除以2,即将它变成n/2;当n是奇数时,就将它变成3n+1,……,若干步后,总会得到1。
在上述演变过程中,将每一次出现的数字排列起来,就会出现一个数字序列。
我们现在要解决的问题是:对于给定的n,求出数字序列中第一次出现1的位置。
#include<stdio.h> int main(void){ long n; int i=1; scanf("%d",&n); while(n!=1){ if(n%2==0) n/=2; else n=3*n+1; i++; } printf("%d",i); return 0; }
将任意给定的整百元钞票,兑换成10元、20元、50元小钞票形式。输出兑换方案总数。
#include<stdio.h> int main(void){ int n,i,j,k,s=1; scanf("%d",&n); int t = n/10; s=s+t/2+t/5; //(10)(10,20)(10,50) i=j=k=1; while(1){ //(10,20,50)(20,50)找规律得到 k = (n-50*i-20*j)/10; if(k>0){ if(k%2==0)s+=k/2+1; else s+=(k-1)/2+1; i++; j=1; }else break; } printf("%d",s); return 0; }
模拟将任意给定的正整数n转换成对应的二进制数的过程:对于输入的任意正整数n,输出若干行“shang:* yu:*”的形式,表示其转换过程。
#include<stdio.h> int main(void){ int n; scanf("%d",&n); while(n!=0){ printf("shang:%d yu:%d\n",n/2,n%2); n=n/2; } return 0; } 输入:13 shang:6 yu:1 shang:3 yu:0 shang:1 yu:1 shang:0 yu:1 二进制就是1101
输入两个正整数,表示a和b(2≤a, b≤10 18)。如果a包含了b的所有质数因子,则输出“Yes”,否则输出“No”
#include<stdio.h> int main(void){ long long a,b,m; scanf("%lld",&a); scanf("%lld",&b); if(a==b){ //如果两数相等,直接输出“Yes” printf("Yes\n"); return 0; } int x=a,y=b; while(x%y!=0){ //辗转相除法求最大公约数 m=x; x=y; y=m%y; } if(y!=1 && a%(b/y)==0) //如果a包含了b的所有质数因子,那么最大公约数不为1,而且a mod (b/GCD)=0 printf("Yes\n"); else printf("No\n"); return 0; }
posted on 2020-03-11 16:51 zuoxiaojinglala 阅读(244) 评论(0) 编辑 收藏 举报