测试点3的分析:1022 D进制的A+B (20分)——15行代码AC
生活随笔
收集整理的這篇文章主要介紹了
测试点3的分析:1022 D进制的A+B (20分)——15行代码AC
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
立志用更少的代碼做更高效的表達
PAT乙級最優題解——>傳送門
輸入兩個非負 10 進制整數 A 和 B (≤2?30?1),輸出 A+B 的 D (1<D≤10)進制數。
輸入格式:
輸入在一行中依次給出 3 個整數 A、B 和 D。
輸出格式:
輸出 A+B 的 D 進制數。
輸入樣例:
123 456 8
輸出樣例:
1103
就是模擬手工進制轉換的過程
進制轉換過程舉例: 將十進制的11轉換成2進制
其他進制同理
本題思路: 定義字符串,依次存放, 最后逆序輸出。
注意點:測試點3數據為0 0 任意進制,若用字符串存儲,則串位空, 因此需補0。
#include<bits/stdc++.h> using namespace std; int main() {long long a, b, x;cin >> a >> b >> x;a = a+b;string s;while(a) {s += (char)(a%x+'0');a /= x; }if(s.empty()) s+='0'; //測試點3, 如果都是0,那么串為空,需補0. reverse(s.begin(), s.end()); //由于是algorithm里的,所以不需要 s去調用cout << s; return 0; }
每日一句
零星的變好,最后也會如星河般閃耀
總結
以上是生活随笔為你收集整理的测试点3的分析:1022 D进制的A+B (20分)——15行代码AC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1021 个位数统计 (15分)——10
- 下一篇: dev c++不能单步调试的问题汇总!我