首页 > 其他 > 详细

6174问题

时间:2014-03-03 16:38:05      阅读:283      评论:0      收藏:0      [点我收藏+]
/*--------6174问题-----------
输入一个n位数,把所有数字从大到小排序得到a,从小到大得到b,然后用a-b替换原来这个数
并且继续操作。1234 、4321-1234=3087、8730-378=8352、8532-2358=6174 
样例输入:1234
样例输出:1234->3087->8352->6074->6174
--------------------------------------------------*/ 
#include<iostream>
using namespace std;
int w[4];
void paixv(int *a)
{int i,m,b;
for(i=0;i<3;i++)
  for(m=0;m<3-i;m++)
  if(a[m]>a[m+1])
  {b=a[m];
  a[m]=a[m+1];
  a[m+1]=b;}
   }
void shuzi(int a)
{for(int i=0;i<4;i++)
{w[i]=a%10;
a=a/10;}
}

int main()
{int a,m,n,q;
cin>>a;
cout<<a;
while(1)
{n=a;
shuzi(a);
paixv(w);
m=w[3]*1000+w[2]*100+w[1]*10+w[0];
q=w[0]*1000+w[1]*100+w[2]*10+w[3];
a=m-q;
if(a==n)
break;
else
cout<<"->"<<a;

}
return 0;
}


6174问题,布布扣,bubuko.com

6174问题

原文:http://blog.csdn.net/rememberautumn/article/details/20291783

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!