码迷,mamicode.com
首页 > 其他好文 > 详细

6174问题

时间:2015-05-30 12:12:34      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:6174问题   6174问题实现   

6174问题 如:输入1234  输出:3087-->8352-->6174-->6174
相当于只要输入的是四位数的整数,最后一定会生成以6174这个数结束。

#include<stdio.h>
#define N 4
void sort(int *arr,int n)//冒泡实现
{
	int temp;
	for(int i=0;i<n-1;i++)
	{
		for(int j=0;j<n-1-i;j++)
		{
			if(arr[j]>arr[j+1])
			{
				temp=arr[j];
				arr[j]=arr[j+1];
				arr[j+1]=temp;
			}
		}
	}
}
void main()
{
	int Number;
	int t=0;
	int a[N]={0};
	int ret=-1;
	int Nret=0,Pret=0;
	printf("输入一个四位数:");
	scanf("%d",&Number);
	while(Number)
	{
		for(int i=0;i<N;i++)
		{
			t=Number%10;
			a[i]=t;
			Number/=10;
		}
		sort(a,N);//调用冒泡排序
		for(i=0;i<N;i++)
		{
			Nret=Nret*10+a[i];//生成了最小值
		}
		for(i=N-1;i>=0;i--)
		{
			Pret=Pret*10+a[i];//生成最大值
		}
		if(ret!=Pret-Nret)
			printf("%d-->",Pret-Nret);
		else
		{
			printf("%d\n",Pret-Nret);
			break;
		}

		ret=Number=Pret-Nret;//将差值保存在ret中,并把差值赋给Number
		Nret=Pret=0;     //这步很重要,一定要将Nret和Pret的值赋为零
	}
}

技术分享

6174问题

标签:6174问题   6174问题实现   

原文地址:http://blog.csdn.net/zhou753099943/article/details/46272943

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!