PTA乙级 (1022 D进制的A+B (20分))
1022 D进制的A+B (20分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805299301433344
解题思路:本题说了a和b值均小于等于2的30次方减一,(2^30-1==1 073 741 823),而整型int占四字节,三十二比特,范围为[-2^31~2^31-1];本题还要考虑若a和b值均为0,则直接输出0.
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int a,b,d,s[100];
cin>>a>>b>>d;
int t=a+b,i=0;
if(t==0) cout<<0; //没有这句,测试点3答案错误
else{
while(t!=0)
{
s[i++]=t%d;
t/=d;
}
for(int j=i-1;j>=0;j--) cout<<s[j];
}
return 0;
}
天晴了,起飞吧