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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章