日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

14行代码AC——1017 A除以B (20分)(大数运算+讲解)

發布時間:2024/2/28 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 14行代码AC——1017 A除以B (20分)(大数运算+讲解) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

立志用更少的代碼做更高效的表達


Pat乙級最優化代碼+題解+分析匯總——>傳送門


本題要求計算 A/B,其中 A 是不超過 1000 位的正整數,B 是 1 位正整數。你需要輸出商數 Q 和余數 R,使得 A=B×Q+R 成立。

輸入格式:
輸入在一行中依次給出 A 和 B,中間以 1 空格分隔。

輸出格式:
在一行中依次輸出 Q 和 R,中間以 1 空格分隔。

輸入樣例:
123456789050987654321 7
輸出樣例:
17636684150141093474 3


模擬手算除法, 舉例:

123除以7, 先用12除以7得1, 將1存入字符串。

12%7=5, 則下一步就要用5*10+3去除以7, 等于7, 將7存入字符串。

余數4保存。 輸出即可。


注意: 本題采用了先計算后判定的方式, 也就是不管是否會產生前導零, 先將程序寫出來, 最后在輸出時將前導零忽略即可。

與此相反的方法是先判定后計算, 也就是設計一個巧妙的算法讓程序不保存前導零。

我更傾向于前一種算法, 因為代碼簡單易懂, 思維量小。


代碼展示

#include<bits/stdc++.h> using namespace std; int main() {string A, Q="";int B, R = 0;cin >> A >> B;for(char a : A) {R = R*10+a-'0';Q += R/B + '0';R %= B;}while(!Q.empty() && Q.front() == '0') Q.erase(Q.begin());//Q.c_str() 函數是 C語言的Printf輸出string的方法 printf("%s %d", Q.size()==0?"0":Q.c_str(),R); return 0; }

每日一句

他日若遂凌云志,敢笑黃巢不丈夫。

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的14行代码AC——1017 A除以B (20分)(大数运算+讲解)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。