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

来源:互联网 发布:玛祖铭立 知乎 编辑:程序博客网 时间:2024/06/06 22:05



易错点:

 如果 输入 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;}






原创粉丝点击