测试点3的分析:1022 D进制的A+B (20分)——15行代码AC
生活随笔
收集整理的這篇文章主要介紹了
测试点3的分析:1022 D进制的A+B (20分)——15行代码AC
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
立志用更少的代碼做更高效的表達(dá)
PAT乙級(jí)最優(yōu)題解——>傳送門
輸入兩個(gè)非負(fù) 10 進(jìn)制整數(shù) A 和 B (≤2?30?1),輸出 A+B 的 D (1<D≤10)進(jìn)制數(shù)。
輸入格式:
輸入在一行中依次給出 3 個(gè)整數(shù) A、B 和 D。
輸出格式:
輸出 A+B 的 D 進(jìn)制數(shù)。
輸入樣例:
123 456 8
輸出樣例:
1103
就是模擬手工進(jìn)制轉(zhuǎn)換的過程
進(jìn)制轉(zhuǎn)換過程舉例: 將十進(jìn)制的11轉(zhuǎn)換成2進(jìn)制
其他進(jìn)制同理
本題思路: 定義字符串,依次存放, 最后逆序輸出。
注意點(diǎn):測試點(diǎn)3數(shù)據(jù)為0 0 任意進(jìn)制,若用字符串存儲(chǔ),則串位空, 因此需補(bǔ)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'; //測試點(diǎn)3, 如果都是0,那么串為空,需補(bǔ)0. reverse(s.begin(), s.end()); //由于是algorithm里的,所以不需要 s去調(diào)用cout << s; return 0; }
每日一句
零星的變好,最后也會(huì)如星河般閃耀
總結(jié)
以上是生活随笔為你收集整理的测试点3的分析:1022 D进制的A+B (20分)——15行代码AC的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1021 个位数统计 (15分)——10
- 下一篇: Hard Disk Drive HDU