1. 程式人生 > >乙級(Basic Level) 1007

乙級(Basic Level) 1007

空格 情況下 [1] 描述 tro pan cin clu 輸入

題目描述

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

輸入描述:

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

輸出描述:

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

輸入例子:

123456789050987654321 7

輸出例子:

17636684150141093474 3

解法:

Python:
a = input().split() a = [int(i) for i in a] print(a[0]//a[1],a[0]%a[1])

C++:
//思路:把除法轉換為求商過程的逆轉,比如 100/2 等價於 1/2 商為0,余數為1,商為0的情況下不能輸輸出, 然後余數和下一位即0
//   組合為1*10+0=10,就變成10/2 商為5余數為0,此時輸出商數。然後0和下一位0組合為0*10+0=0 0/2余數為0,此時運算完畢
#include<iostream> #include
<string> using namespace std; int main(){ string str,ans; int i,j,n,d = 0; cin >> str >> n; for(i = 0; i <= str.size()-1; i++){ int current = d * 10 + (str[i]-0); ans += (current / n+0); d = current % n; } j = 0; for(i=0;i<ans.size();i++)
if(ans[i] != 0 || j){ j = 1; cout<<ans[i]; } cout << " " << d; return 0; }

乙級(Basic Level) 1007