pat 乙级 1017 A除以B(C++)
生活随笔
收集整理的這篇文章主要介紹了
pat 乙级 1017 A除以B(C++)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目
本題要求計算 A/B,其中 A 是不超過 1000 位的正整數(shù),B 是 1 位正整數(shù)。你需要輸出商數(shù) Q 和余數(shù) R,使得 A=B×Q+R 成立。
輸入格式:
輸入在一行中依次給出 A 和 B,中間以 1 空格分隔。
輸出格式:
在一行中依次輸出 Q 和 R,中間以 1 空格分隔。
輸入樣例:
123456789050987654321 7
輸出樣例:
17636684150141093474 3
分析
- 被除數(shù)不超過1000位,范圍遠(yuǎn)遠(yuǎn)超過基本數(shù)據(jù)類型,需用字符數(shù)組或者string類型,此處選擇string類型,因為string類提供了很多方便又實用的函數(shù)
- 模擬除法,將余數(shù)和除數(shù)比較,如果余數(shù)>除數(shù),做除法并分別取商和余數(shù);如果余數(shù)<除數(shù),商取0,余數(shù)=余數(shù)*10+下一位。
- 最后結(jié)果,商的第一位如果是0,要去掉0再輸出。
AC代碼
#include <iostream> #include <string> using namespace std; int main() {string A,Q;int i,len,B,R=0;cin>>A>>B;len=A.length();for(i=0;i<len;i++){R=10*R+(A[i]-'0');if(R<B){Q=Q+to_string(0);}else{Q=Q+to_string(R/B);R=R%B;}}if(Q[0]=='0'&&Q.length()!=1)Q=Q.substr(1);//將字符串從第2位到最后1位截取出來cout<<Q<<" "<<R;return 0; }如果有任何問題,歡迎評論區(qū)留言哦
總結(jié)
以上是生活随笔為你收集整理的pat 乙级 1017 A除以B(C++)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DDoS攻击工具(DDoS攻击工具箱)
- 下一篇: 人力资源局备案(人事厅备案)