- 害死人不偿命的(3n+1)猜想
#include<stdio.h>
int main()
{
int num=0,step=0;
scanf("%d",&num);
while(num != 1)
{
if(0==num%2)
{
num=num/2;
}
else
{
num=3*num+1;
num=num/2;
}
step++;
}
printf("%d",step);
}
- 写出这个数
#include<stdio.h>
int choose(int num)
{
int a[10]={},count=0;
while(num)
{
a[count++]=num%10;
num /=10;
}
for(int i=count-1;i>=0;i--)
{
if(0 != i)
{
if(0==a[i]) printf("ling ");
if(1==a[i]) printf("yi ");
if(2==a[i]) printf("er ");
if(3==a[i]) printf("san ");
if(4==a[i]) printf("si ");
if(5==a[i]) printf("wu ");
if(6==a[i]) printf("liu ");
if(7==a[i]) printf("qi ");
if(8==a[i]) printf("ba ");
if(9==a[i]) printf("jiu ");
}
else
{
if(0==a[i]) printf("ling");
if(1==a[i]) printf("yi");
if(2==a[i]) printf("er");
if(3==a[i]) printf("san");
if(4==a[i]) printf("si");
if(5==a[i]) printf("wu");
if(6==a[i]) printf("liu");
if(7==a[i]) printf("qi");
if(8==a[i]) printf("ba");
if(9==a[i]) printf("jiu");
}
}
}
int str_to_int(char* str)
{
int add=0;
if(NULL==str) return 0;
for(int i=0;str[i];i++)
{
add += str[i]-'0';
}
choose(add);
}
int main()
{
char str[100];
scanf("%s",str);
str_to_int(str);
}
- 我要通过!
#include <stdio.h>
#include <string.h>
int main()
{
char a[105];
int i,j,n,len,P,A,T,x,y;
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
gets(a);
len=strlen(a);
P = 0;
A = 0;
T = 0;
x= 0;
y= 0;
for(j=0;j<len;j++)
{
if(a[j]=='P')
{
P++;
x= j;
}
if(a[j]=='A')
A++;
if(a[j]=='T')
{
T++;
y= j;
}
}
if (P+A+T!=len||y-x<=1||P>1||T>1||x*(y-x-1)!=len-y-1)
printf("NO\n");
else
printf("YES\n");
}
}
- 成绩排名
#include <stdio.h>
#include <string.h>
int main()
{
int n;
char maxname[20],maxid[20],minname[20],minid[20],t1[20],t2[20];
int score=0,max=0,min=100;
scanf("%d",&n);
for (int i=0;i<n;i++)
{
scanf("%s%s%d",t1,t2,&score);
if (score>max)
{
max=score;
strcpy(maxname,t1);
strcpy(maxid,t2);
}
if (score<min)
{
min=score;
strcpy(minname,t1);
strcpy(minid,t2);
}
}
printf("%s %s\n%s %s",maxname,maxid,minname,minid);
}
- 继续(3n+1)猜想
#include<stdio.h>
#include<string.h>
int main()
{
int a[100];
int b[100][100];
int i,j,k,n,q;
memset(b,0,sizeof(b));
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
k=a[i];
j=0;
while(k!=1)
{
if(k%2==0)
k=k/2;
else
k=(3*k+1)/2;
b[i][j]=k;
j++;
}
}
for(i=0;i<n;i++)
{
for(j=0;b[i][j]!=0;j++)
{
for(q=0;q<n;q++)
if(a[q]==b[i][j])
a[q]=0;
}
}
for(i=0;i<n-1;i++)
for(j=i;j<n;j++)
if(a[i]<a[j])
{
int temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
for(i=0;i<n-1;i++)
for(j=i;j<n;j++)
{
if(a[i]==0&&a[j]!=0)
{
a[i]=a[j];
a[j]=0;
}
}
q=0;
for(i=0;i<n;i++)
if(a[i]>0)
q++;
for(i=0;i<q-1;i++)
if(a[i]>0)
printf("%d ",a[i]);
printf("%d",a[q-1]);
return 0;
}
1006.换个格式输出整数
#include<stdio.h>
int main()
{
int a,b,c,n;
scanf("%d",&n);
b=(n/10)%10;
a=n/100;
c=n%10;
for (int i=a;i>0;i--)
printf("B");
for (int i=b;i>0;i--)
printf("S");
for (int i=1;i<=c;i++)
{
printf("%d",i);
}
return 0;
}
- 素数对猜想
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,k,temp,n=0;
int s=2;
scanf("%d",&k);
if(k==1) return 0;
else
for(i=2;i<=k;i++)
{
temp=sqrt(i);
for(j=2;j<=temp;++j)
if(i%j==0) break;
if(j>=temp+1)
{
if((i-s)==2)
n++;
s=i;
}
}
printf("%d",n);
return 0;
}
- 数组元素循环右移问题
#include<stdio.h>
int main()
{
int n,i,x,a;
scanf("%d %d",&n,&x);
int ch[n];
for (i=0;i<n;i++)
scanf("%d",&ch[i]);
if (x!=n&&x%n!=0)
{
x%=n;
for (i=n-x;i<n;i++)
printf("%d ",ch[i]);
for (i=0;i<n-x;i++)
{
printf("%d",ch[i]);
if (i!=(n-x-1))
printf(" ");
}
}
else
{
for (i=0;i<n;i++)
{
printf("%d",ch[i]);
if (i!=(n-1))
printf(" ");
}
}
return 0;
}
- 说反话
#include <stdio.h>
int main()
{
char arr[80][80],a=' ';
int count=0;
for(int i=0;a != '\n';i++)
{
scanf("%s%c",arr[i],&a);
count++;
}
for(int i=count-1;i>=0;i--)
{
printf("%s",arr[i]);
if(i != 0) printf(" ");
}
return 0;
}
- 一元多项式求导
#include<stdio.h>
int main()
{
int a,b;
int flag=0;
while (scanf("%d %d",&a,&b)!=EOF)
{
if (a*b!=0)
{
if (flag!=0)
printf(" ");
printf("%d %d",a*b,b-1);
flag++;
}
if (flag==0)
printf("0 0");
}
return 0;
}
- A+B 和 C
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d",&n);
long long int arr[n][3];
for(int i=0;i<n;i++)
{
for(int j=0;j<3;j++)
{
scanf("%lld",&arr[i][j]);
}
}
for(int i=0;i<n;i++)
{
if(arr[i][0]+arr[i][1]>arr[i][2])
printf("Case #%d: true\n",i+1);
else
printf("Case #%d: false\n",i+1);
}
return 0;
}
- 数字分类
#include <stdio.h>
#include <stdlib.h>
int main()
{
int cnt;
scanf("%d",&cnt);
int array[5] = {0};
int i;
int num,temp,temp1=1,cnt3=0,max = 0;
int flag1 = 0, flag2 = 0, flag3= 0,flag4 = 0, flag5 = 0;
for(i = 1; i <= cnt; i++){
scanf("%d",&num);
temp = num % 5;
if(temp == 0 && num % 2 == 0)
{flag1 = 1; array[0] += num;}
if(temp == 1) {
flag2 = 1;
array[1] += ((temp1 % 2 != 0)? num:(-1*num));
temp1++;
}
if( temp == 2){
flag3 = 1;
array[2]++;
}
if( temp == 3){
flag4 = 1;
cnt3++;
array[3]+=num;
}
if( temp == 4){
flag5 = 1;
if(num > max) max = num;
}
}
int h;
if(flag1) printf("%d ",array[0]); else printf("N ");
if(flag2) printf("%d ",array[1]); else printf("N ");
if(flag3) printf("%d ",array[2]); else printf("N ");
if(flag4) printf("%.1f ",1.0*array[3]/cnt3); else printf("N ");
if(flag5) printf("%d",max);else printf("N");
return 0;
}
- 数素数
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
bool is_prime(int num)
{
for(int j=2;j<=sqrt(num);j++)
{
if(0 == num%j) return false;
}
return true;
}
int main()
{
int n=0,m=0,count=0;
scanf("%d %d",&n,&m);
if(n<=m)
{
for(int i=2;;i++)
{
if(is_prime(i))
{
count++;
if(n<=count && count<=m)
{
if(0 != (count-n+1)%10 && count!=m) printf("%d ",i);
else printf("%d\n",i);
}
if(count>m) return 0;
}
}
}
else return 0;
}
- 福尔摩斯的约会
#include <stdio.h>
int main()
{
char a[61]={},b[61]={},c[61]={},d[61]={};
int flag=0;
gets(a);
gets(b);
gets(c);
gets(d);
for(int i = 0;a[i] != '\0' && b[i] != '\0';i++)
{
if(a[i] == b[i] && a[i]>='A' && a[i]<='G' && 0 == flag)
{
flag=1;
if('A' == a[i]) printf("MON ");
if('B' == a[i]) printf("TUE ");
if('C' == a[i]) printf("WED ");
if('D' == a[i]) printf("THU ");
if('E' == a[i]) printf("FRI ");
if('F' == a[i]) printf("SAT ");
if('G' == a[i]) printf("SUN ");
continue;
}
if(a[i] == b[i] && 1 == flag)
{
if(a[i]>='0' && a[i]<='9')
{
printf("%02d:",a[i]-'0');
break;
}
if(a[i]>='A' && a[i]<='N')
{
printf("%02d:",a[i]-'A'+10);
break;
}
}
}
for(int i=0;c[i] != '\0' && d[i] != '\0';i++)
{
if(c[i] == d[i] && (c[i]>='a' && c[i]<='z')||(c[i]>='A'&&c[i]<='Z'))
{
printf("%02d",i);
break;
}
}
return 0;
}