卡布列克常数

问题:卡布列克常数

题目描述最近,小Q在数学兴趣课中了解了“卡布列克常数”。卡布列克是一位数学家,他在研究数字时发现:任意一个不是用完全相同数字组成的四位数,如果对它们的每位数字重新排序,组成一个最大的数和一个最小的数,然后用最大数减去最小数,差不够四位数时补零,类推下去,最后将变成一个固定的数:6174,这就是卡布列克常数。

例如:4321-1234=3087

8730-378=8352

8532-2358=6174

7641-1467=6174

           ……

小Q想,我能不能编程来验证呢?输入一个符合条件的四位数,然后验证运算过程。

输入共1行,为任意一个不是用完全相同数字组成的四位数。
输出变为卡布列克常数的运算过程,由若干行组成,每行是一个算式,不含空格。

样例输入:
4321
样例输出:
4321-1234=3087
8730-378=8352
8532-2358=6174

#include
int main()
{
 int max(int num);
 int min(int num);
 int n,i=0,num,k;
 scanf("%d",&n);
 num=n;k=n;
 while(num!=6174)
 {
	  k=max(num)-min(num);
 	 printf("%d-%d=%d\n",max(num),min(num),k);
	  num=k;
	  if(num<1000)
  	{
	   while(num<1000)
  	   num*=10;
 	 }
 }
 return 0;
}


int max(int num)
{
 	int a[1000];
	 int i=0;
 while(num)
 {
  	a[i]=num%10;
  	i++;
  	num/=10;
 }
	 int temp;
 	for(int i=0;i<4-1;i++)
	 {
 	 for(int j=0;j<4-i-1;j++)
 	 {
	   if(a[j]

你可能感兴趣的:(贪心+水题+模拟,卡布列克常数)