您的位置:首页 > 其它

pat 乙级 1019. 数字黑洞 (20)

2017-09-04 19:27 411 查看






易错点:

 如果 输入 1000 

 错误输出  1000 - 0001 = 999      这里要考虑格式的问题 
正确输出   1000 - 0001 = 0999


所以还是cout 和printf 的格式问题 。我发现 pat乙级20分题目的扣分点  格式自动补零这一块很常见。

会经常遇到 这种 %0nd 的输出格式 ,有必要特别注意一点;

代码实现:

#include <iostream>
#include<algorithm>
using namespace std;

int main()
{
int n;
cin>>n;
while (1)
{
int qian= n/1000;
int bai= n % 1000 /100;
int shi= n % 100 /10 ;
int ge= n % 10;

if (qian==bai&&bai==shi&&shi==ge)
{
cout<<n<<" - "<<n<<" = "<<"0000"<<endl;
break;
}

int c[4];
c[0]=qian;
c[1]=bai;
c[2]=shi;
c[3]=ge;

sort(c,c+4);
cout<<c[3]<<c[2]<<c[1]<<c[0];
cout<<" - ";
cout<<c[0]<<c[1]<<c[2]<<c[3];
cout<<" = ";
int a=c[3]*1000+c[2]*100+c[1]*10+c[0];
int b=c[0]*1000+c[1]*100+c[2]*10+c[3];
n=a-b;
printf("%04d\n",n);
if (n==6174)
{
break;
}
}
return 0;
}






内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: