证明6174“数学黑洞”,并输出中间结果,我写的很麻烦,主要是想试验一下几个不熟的函数
#include<string.h>
#include<math.h>
#include<ctype.h>
#include <stdlib.h>
int max(int x,int y)
{
return x>y?x:y;
}
int main()
{
int n,t,l;
char buf[4];
while(scanf("%s",&buf),strlen(buf)==4)
{
printf("%s->",buf);
int i,j,m,cost[10000],a,b,c,ok=0;
for(m=0;;m++)
{
cost[m]=atoi(buf);
for(i=0;i<3;i++)
{
for(j=i+1;j<4;j++)
{
c=max(buf[i],buf[j]);
buf[j]=buf[i]+buf[j]-c;
buf[i]=c;
}
}
a=atoi(buf);
b=atoi(strrev(buf));
a=a-b;
printf("%d",a);
itoa(a,buf,10);
for(n=0;n<=m;n++)
{
if(a==cost[n])
{
// printf("PPPPPPQQQQQQ%d",cost[n]);
ok=1;
break;
}
else
continue;
}
if(ok==1)
{
printf("\n");
break;
}
else
printf("->");
}
memset(buf,0,sizeof(buf));
}
return 0;
}