题目链接:
https://pintia.cn/problem-sets/994805260223102976/problems/994805299301433344
错因:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,n=0,d=0,result=0,i=0,yu=0;
scanf("%d %d %d",&a,&b,&d);
n=a+b;
if(n == 0)
printf("0");
else
{
while(n/d)
{
yu=n%d;
result=yu*pow(10,i)+result;
n=n/d;
i++;
}
result=n*pow(10,i)+result;
printf("%d",result);
}
}
一直有测试点不通过,10进制转其他数值的话结果是大于10进制
本身的数的,不应该用int存,应该先存进数组中,再倒序输出数
组。
采用如下代码:
#include <iostream>
using namespace std;
int main() {
int a, b, d;
cin >> a >> b >> d;
int t = a + b;
if (t == 0) {
cout << 0;
return 0;
}
int s[100];
int i = 0;
while (t != 0) {
s[i++] = t % d;
t = t / d;
}
for (int j = i - 1; j >= 0; j--)
cout << s[j];
return 0;
}
07-31
07-31
07-31