pat 乙级 1022 D进制的A+B(C++)
生活随笔
收集整理的這篇文章主要介紹了
pat 乙级 1022 D进制的A+B(C++)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
輸入兩個非負 10 進制整數 A 和 B (≤2?30 ?1),輸出 A+B 的 D (1<D≤10)進制數。
輸入格式:
輸入在一行中依次給出 3 個整數 A、B 和 D。
輸出格式:
輸出 A+B 的 D 進制數。
輸入樣例:
123 456 8
輸出樣例:
1103
分析
- A+B<=2^31-2,故依然可用int類型來存儲變量
- 進制轉換,可使用除k取余法
- 注意A、B為0的情況。
- 除k取余法,結果是倒著數。
AC代碼
#include<iostream> #include<string> #include<cstring> using namespace std; int main() {int A,B,C,D,r;cin>>A>>B>>D;string s="";C=A+B;if(C==0){cout<<0;}while(C!=0){r=C%D;s=s+to_string(r);C=C/D;}int len=s.length()+1;char ch[len];strcpy(ch, s.c_str());int i;for(i=len-2;i>=0;i--)cout<<ch[i];return 0; }用到的函數
to_string():將整數轉為string c_str():將string轉為char* strcpy():將字符串內容復制到字符串或者char*有任何問題,歡迎評論區留言!
更多題解
pat 乙級 題解匯總(持續更新)(C++)
總結
以上是生活随笔為你收集整理的pat 乙级 1022 D进制的A+B(C++)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 长安汽车(长安长安汽车报价)
- 下一篇: pat 乙级 1027 打印沙漏(C++