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("
");
54                 return 0;
55             }
56         }
57         count++;
58     }
59     return 0;
60 }

运行结果:

原文地址:https://www.cnblogs.com/bboykaku/p/12667894.html