目录
1001 害死人不偿命的(3n+1)猜想
很简单,代码如下,不知道代码能不能简化,等题目做完后看一看。
#include<stdio.h>
int main(void)
{
int n;
int count=0;
scanf("%d",&n);
for(n;n!=1;){
if(n%2==0)
n=n/2;
else
n=(3*n+1)/2;
count+=1;
}
printf("%d",count);
}
1002 写出这个数
这一题我的想法首先是定义一个正整数,后来发现这个数太大,不能直接定义成整数,后来我想到了用数组来存储输入的整数。但是整数型数组不好输入,所以我选择用字符型数组,用gets()输入,读到'\0'就结束。还是有点麻烦,看看能不能简化下。
#include<stdio.h>
int main(void)
{
char string[101];
int n[101];
int sum=0;
int single;
int i=0;
int j=0;
int k=0;
int cnt=0;
gets(string);
for( string[cnt];string[cnt]!='\0' ; ){
cnt++;
}
for( k;k<cnt;k++){
n[k]=string[k]-'0';
}
for(j;j<cnt;j++){
sum=sum+n[j];
}
int sum_single[100];
int count=0;
for(sum;sum>0;count++){
sum_single[count]=sum%10;
sum=sum/10;
}
for(count;count>=1 ;count--){
void chinese(int a);
chinese(sum_single[count-1]);
if(count-1>0){
printf(" ");
}
}
return 0;
}
void chinese(int a){
switch(a){
case 0:printf("ling");break;
case 1:printf("yi");break;
case 2:printf("er");break;
case 3:printf("san");break;
case 4:printf("si");break;
case 5:printf("wu");break;
case 6:printf("liu");break;
case 7:printf("qi");break;
case 8:printf("ba");break;
case 9:printf("jiu");break;
}
return ;
}