1017 A除以B(C++/Python)

2019/03/07 20:58
阅读数 13

这道要使用数组或者字符串类型来存储被除数。

有两种大致的思路:

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)

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部