您的位置:首页 > 其它

PAT-1069-The Black Hole of Numbers

2014-08-31 18:57 232 查看
这题目最坑了,我做的A题最坑的一道

1,首先输入数据不一定是四位的,泪奔,输入1,222,222,试一试

2,在运行过程中需要判定结果是否为0,需要跳出

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

void get(char * data,int & max,int &min)
{
sort(data,data+4);
min=(data[0]-'0')*1000+(data[1]-'0')*100+(data[2]-'0')*10+(data[3]-'0');
max=(data[3]-'0')*1000+(data[2]-'0')*100+(data[1]-'0')*10+(data[0]-'0');
}

void int2char(char * p,int num)
{
int temp;
int j=3;
while(j>=0)
{
temp=num%10;
p[j]=temp+'0';
num=num/10;
j--;
}
}

int main()
{
char data[5];
int da;
int min,max,result;
memset(data,0,sizeof(char)*5);
while(scanf("%d",&da)!=EOF)
{
sprintf(data,"%04d",da);
get(data,max,min);
memset(data,0,sizeof(char)*5);
result=max-min;
//printf("%d %d\n",min,max);
printf("%04d - %04d = %04d\n",max,min,result);
if(result==0)
continue;
while(true)
{
if(result==6174||result==0)
break;
char temp[5];
temp[4]='\0';
//int2char(temp,result);
sprintf(temp,"%04d",result);
//printf("%s\n",temp);
get(temp,max,min);
result=max-min;
printf("%04d - %04d = %04d\n",max,min,result);
// getchar();
}
}
return 0;
}


现在觉得sprintf很好用,从各种数据类型到字符串,轻而易举,不用自己位操作了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: