版权声明:虽然我依旧蒟蒻,但请你尊重我 :D ——陈杉菜 https://blog.csdn.net/qq_44702847/article/details/88027535
pat 乙级1022 D进制的A+B (20 point(s))
输入两个非负 10 进制整数 A 和 B (≤230 −1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
- 123 456 8
输出样例:
- 1103
1.C实现
#include<stdio.h>
int main()
{
int a,b,d;
scanf("%d %d %d",&a,&b,&d);
int t=a+b,i=0;
int s[35]={0};
if(t==0) printf("0");
else{
while(t!=0){
s[i++]=t%d;
t/=d;
}
}
for(int j=i-1;j>=0;j--)
printf("%d",s[j]);
return 0;
}
2.C++实现
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,d;
cin>>a>>b>>d;
int t=a+b,i=0;
int s[35]={0};
if(t==0) cout<<0;
else{
while(t!=0){
s[i++]=t%d;
t/=d;
}
}
for(int j=i-1;j>=0;j--)
cout<<s[j];
return 0;
}
3. JAVA实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 0;
int a;
int b;
int d;
int s[]=new int[32];
Scanner in =new Scanner(System.in);
a= in.nextInt();
b= in.nextInt();
d= in.nextInt();
int sum=a+b;
if(sum==0) System.out.println(0);
else {
while(sum!=0) {
s[i]=sum%d;
i++;
sum/=d;
}
}for(int j=i-1;j>=0;j--) {
System.out.print(s[j]);
}
}
}