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;
}
posted @ 2020-01-31 23:52  yyer  阅读(225)  评论(0编辑  收藏  举报