NYOJ 57(6174问题)

简介: #include #include int c[4]; void fun(int num,int c[]) { int i=0; while(num>0)/*不能有等号,否则死循环*/ { c[i++]=num%10; num/=10; } } int ...
 #include<stdio.h>
#include<stdlib.h>
int c[4];
void fun(int num,int c[])
{
	int i=0;
	while(num>0)/*不能有等号,否则死循环*/
	{
		c[i++]=num%10;
		num/=10;
	}
}
int cmp(const void *a,const void *b)
{
	return *(int *)a-*(int *)b;
}
int main()
{
	int T,num,a,b,count,ans;int i;
	scanf("%d",&T);
	while(T--)
	{
		i=0;count=0;ans=0;
		scanf("%d",&num);
		fun(num,c);
		while(ans!=6174)
		{
		//	printf("%d\n",ans);
			qsort(c,4,4,cmp);
			a=c[0]*1000+c[1]*100+c[2]*10+c[3];/*刚开始数字搞混啦*/
			b=c[3]*1000+c[2]*100+c[1]*10+c[0];
			//printf("%d	%d\n",b,a);
			ans=b-a;
			//for(i=0;i<888888888;i++);
			count++;
			fun(ans,c);
		}
		printf("%d\n",count+1);
	}
	return 0;
}

  

目录
相关文章
|
7月前
|
算法
NYOJ-448-寻找最大数
NYOJ-448-寻找最大数
31 0
|
人工智能 算法
|
人工智能 测试技术
NYOJ&#160;79
拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意 的高度,但是以后每一发炮弹都不能高于等于前一发的高度。
960 0
NYOJ 283
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 /* 9 bool cmp(char *a,char *b) 10...
489 0
|
网络协议
NYOJ 8
  一种排序 时间限制:3000 ms | 内存限制:65535 KB 难度:3   描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);1.
794 0
NYOJ 113
1 #include 2 #include 3 using namespace std; 4 5 int main() 6 { 7 int pos=-1; 8 string s; 9 while(getline(cin,s)) 10 { 11 while((pos=s.
682 0
|
测试技术
NYOJ 523
  亡命逃窜 时间限制:1000 ms | 内存限制:65535 KB 难度:4   描述   从前有个叫hck的骑士,为了救我们美丽的公主,潜入魔王的老巢,够英雄吧。不过英雄不是这么好当的。
916 0
NYOJ 86
  找球号(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3   描述 在某一国度里流行着一种游戏。游戏规则为:在一堆球中,每个球上都有一个整数编号i(0
811 0
NYOJ 212
  K尾相等数 时间限制:3000 ms  |  内存限制:65535 KB 难度:1   描述 输入一个自然数K(K>1),如果存在自然数M和N(M>N),使得K^M和K^N均大于等于1000,且他们的末尾三位数相等,则称M和N是一对“K尾相等数”。
624 0