现在的位置: 首页 > 综合 > 正文

POJ1350

2018年04月05日 ⁄ 综合 ⁄ 共 768字 ⁄ 字号 评论关闭

题目意思很清楚,,理解也很清晰。就是被数据范围坑了,一种OLE,后来改的代码过了面目全非,勿喷

 

#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#define MAX_LEN 10

int com(const void * a,const void * b)
{
	return (int)(*((char *)a) - *((char *)b));
}

int com1(const void * a,const void * b)
{
	return (int)(*((char *)b) - *((char *)a));
}

int main(void)
{
	char num[MAX_LEN],t[MAX_LEN];
	int times,n,f,x;
	while((scanf("%d",&x)) == 1 && x != -1)
	{
		times = 0;
		printf("N=%d:\n",x);
		sprintf(num,"%d",x);
		if((num[0] == num[1] && num[2] == num[3] && num[0] == num[2]) || x > 10000 || x < 1000 )
		{
			printf("No!!\n");
			continue;
		}
		while(strcmp("0",num) != 0 && strcmp("6174",num) != 0)
		{
			strcpy(t,num);
			qsort(t,strlen(t),sizeof(char),com1);
			sscanf(t,"%d",&n);
			qsort(t,strlen(t),sizeof(char),com);
			sscanf(t,"%d",&f);
			sprintf(num,"%d",n - f);
			times ++;
			printf("%d-%d=%d\n",n,f,n - f);
		}
		printf("Ok!! %d times\n",times);
	}
	return 0;
}

 

 

【上篇】
【下篇】

抱歉!评论已关闭.