1017 A除以B(C++/Python)
这道要使用数组或者字符串类型来存储被除数。
有两种大致的思路:
1.我们以前计算商,从右往左计算,不足,向前借1,在这里我们可以从左到右计算:
- 不足,前一个数减一,当前一个数为0时,此时商为0,余数为除数
- 整除,...
- 不能整除,进行下一位计算时,需要加上上一个数的余数
注意0的输出
2.可以理解成,逆向思维,也可以从左往右,思路和从右往左类似,但是不需要向前一个数借1
下面的C++代码使用思路2
#include <iostream> #include <string> using namespace std; int main() { string a; int b = 0, temp = 0; bool flag = false; cin >> a >> b; for (size_t i = 0; i < a.size(); ++i) { temp = (a[i] - '0') + temp * 10; if (temp >= b) { cout << temp / b; flag = true; } else if(flag) cout << 0; temp = temp % b; } if (!flag) cout << 0; cout << " " << temp; return 0; }
Python就很方便了
arr=input().split( ) a,b=divmod(int(arr[0]),int(arr[1])) print(a,b)

浙公网安备 33010602011771号