C++ 1019 数字黑洞(20 分)
程序员文章站
2022-06-07 13:14:20
...
注意点
(1)格式问题,算式中间有空格
(2) 格式很重要 都是四位数 :789应该是0789 1应该是0001
(3) 有格式要求的输出用printf 比cout好用
#include<iostream>
#include<string.h> //string
#include<algorithm> //sort
#include<math.h> //pow
using namespace std;
int main()
{
string str;
int a[4]={0,0,0,0};
int d=0,x=0,cha=0; //较大值 较小值初始化 输入值
cin>>str;
int len=str.length();
for(int i=0;i<len;i++){
a[i]=str[i]-'0';
}
if (a[1]==a[2]&&a[2]==a[3]&&a[3]==a[0]) {
cout<<str<<" - "<<str<<" = "<<"0000"; //这样写如果0000不带引号的话,第一个测试点错误
// printf("%04d - %04d = %04d\n",a[0]*1111,a[0]*1111,0);
}
else{
while(cha!=6174)
{
sort(a,a+4,greater<int>());
for(int i=0;i<4;i++){
d=10*d+a[i];
x=10*x+a[3-i]; //注意789 应该表示为0789
}
cha= d-x;
// cout<<d<<" - "<<x<<" = "<<cha<<endl; //可能是3210-123 格式错误
printf("%04d - %04d = %04d\n",d,x,cha);
a[3]=cha%10;
a[2]=(cha/10)%10;
a[1]=(cha/100)%10;
a[0]=cha/1000;
d=0;
x=0;
}
}
return 0;
}
推荐阅读
-
Pat1048 数字加密 (20 分)
-
pat1048 数字加密(20)(20 分)
-
1027 Colors in Mars (20分)——C/C++(进制转换)
-
PTA 初级1019数字黑洞 & 测试点解析
-
【PAT乙级】1019 数字黑洞 (20分)
-
PAT_甲级_1050 String Subtraction (20分) (C++)【签到题/二分查找/字符串处理】
-
PAT_甲级_1065 A+B and C (64bit) (20分) (C++)【大数相加】
-
1094 谷歌的招聘 (20分) C++版4ms通过所有测试点
-
实验2-4-1 统计各位数字之和是5的数 (20分)
-
1019 数字黑洞(字符串)