pat 乙级1022 D进制的A+B (20 point(s))

版权声明:虽然我依旧蒟蒻,但请你尊重我 :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]);
				}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_44702847/article/details/88027535