PAT乙级1022:D进制的A+B

在这里插入图片描述

主要掌握进制转换的算法(除留余数法)

解法一:

#include <iostream>
#include <vector>

using namespace std;

int main()
{
	int A, B, C = 0;
	cin >> A >> B >> C;

	int sum = 0;
	sum = A + B;

	vector<int> v; //用于保存获得的C进制数

	do
	{
		int temp = sum % C; //除留余数法
		v.push_back(temp);  //存放
		sum /= C;
	} while (sum != 0);
	//倒序输出v即使转换后的值
	for (int i = v.size() - 1; i >= 0; i--) {
		cout << v[i];
	}
	
	return 0;
}

解法二:

#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    int a,b,d;
    cin >> a >> b >> d;
    stack<int> s;
    int c = a+b;
    if(c == 0)
    {
        cout << 0;
    }
    while(c!=0)
    {
        s.push(c%d);
        c /= d;
    }
    while(!s.empty())
    {
        cout << s.top();
        s.pop();
    }
    return 0;
}
原创文章 85 获赞 86 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43699840/article/details/105353333
今日推荐