PAT-B 1017 A除以B【模擬 大數除法】
PAT-B 1017 A除以B
https://pintia.cn/problem-sets/994805260223102976/problems/994805305181847552
題目
本題要求計算 A/B,其中 A 是不超過 1000 位的正整數,B 是 1 位正整數。你需要輸出商數 Q 和餘數 R,使得 A=B×Q+R 成立。
輸入
輸入在一行中依次給出 A 和 B,中間以 1 空格分隔。
輸出
在一行中依次輸出 Q 和 R,中間以 1 空格分隔。
樣例輸入
123456789050987654321 7
樣例輸出
17636684150141093474 3
分析
使用字串接收大數,註釋很詳細,具體看程式。
C++程式
#include<iostream>
#include<string>
using namespace std;
int main()
{
string a;
int b;
cin>>a>>b;
int temp=0;
bool flag=false;//是否輸出過非零位
for(int i=0;i<a.length();i++)
{
temp=temp*10+a[i]-'0';
int x=temp/b;
temp%=b;
//如果首位為0就跳過(防止出現前導零)
if(!flag&&x==0) continue;
cout<<x;//輸出商的這一位
flag=true;//已經輸出過非零位了,置為true,以後出現0就可以輸出了
}
if(!flag) cout<<"0";//商為0的情況
cout<<" "<<temp<<endl;//輸出餘數
return 0;
}
相關文章
- 【PAT乙級】1017 A除以B
- PAT-B 1084 外觀數列 【模擬】
- PAT-B 1019 數字黑洞【陣列+模擬】陣列
- PAT-B 1027 列印沙漏 【模擬】
- PAT-B 1024 科學計數法【模擬+字串】字串
- PAT-B 1012 數字分類【簡單模擬】
- PAT-B 1058 選擇題 【模擬】
- PAT-B 1061 判斷題【模擬】
- PAT-B 1067 試密碼【模擬】密碼
- PAT-B 1071 小賭怡情【模擬】
- PAT-B 1054 求平均值 【模擬】
- PAT-B 1072 開學寄語【模擬】
- PAT-B 1081 檢查密碼【模擬】密碼
- PAT-B 1085 PAT單位排行【模擬】
- PAT-B 1018 錘子剪刀布 【模擬】
- PAT-B 1059 C語言競賽【模擬】C語言
- PAT-B 1077 互評成績計算【模擬】
- PAT-B 1025 反轉連結串列【模擬+對映】
- PAT-B 1069 微博轉發抽獎【模擬+集合】
- L1-037 A除以B 分數 10
- PAT-B 1064 朋友數
- hduoj1002 A + B Problem II (大數相加 字串模擬)字串
- PAT-B 1013 數素數 【素數】
- PAT-B 1079 延遲的迴文數【字串+大數加法】字串
- PAT-B 1051 複數乘法
- PAT-B 1008 陣列元素迴圈右移問題【簡單模擬】陣列
- 模擬賽38 B. T形覆蓋 大模擬
- PAT-B 1023 組個最小數
- PAT-B 1048 數字加密【字串】加密字串
- PAT-B 1062 最簡分數
- PAT-B 1091 N-自守數
- PAT-B 1007 素數對猜想【素數】
- PAT-B 1001 害死人不償命的(3n+1)猜想【模擬】
- PAT-B 1057 數零壹【進位制】
- PAT-B 1060 愛丁頓數【排序】排序
- PAT-B 1030 完美數列【二分】
- PAT-B 1016 部分A+B
- PAT-B 1046 划拳