6174问题
问题描述:任意输入一个4位整数,最后都会得到6174
代码实现:
1 //6174问题 2 #include<stdio.h> 3 #include<string.h> 4 int num[2000]; 5 6 int Get(int x) 7 { 8 int a,b,n; 9 char s[10]; 10 sprintf(s,"%d",x); 11 n=strlen(s); 12 13 for(int i=0;i<n-1;i++) 14 { 15 int sign=1; 16 for(int j=n;j>i;j--) 17 { 18 if(s[j]>s[j-1]) 19 { 20 sign=0; 21 char temp=s[j]; 22 s[j]=s[j-1]; 23 s[j-1]=temp; 24 } 25 } 26 if(sign) break; 27 } 28 sscanf(s,"%d",&a); 29 30 for(i=0;i<n/2;i++) 31 { 32 char t=s[i]; 33 s[i]=s[n-i-1]; 34 s[n-i-1]=t; 35 } 36 sscanf(s,"%d",&b); 37 return a-b; 38 } 39 40 int main() 41 { 42 int count=1; 43 scanf("%d",&num[0]); 44 printf("%d",num[0]); 45 for(;;) 46 { 47 num[count]=Get(num[count-1]); 48 printf("->%d",num[count]); 49 for(int i=0;i<count;i++) 50 { 51 if(num[i]==num[count]) 52 { 53 printf("\n"); 54 return 0; 55 } 56 } 57 count++; 58 } 59 return 0; 60 }
运行结果: