【洛谷】P1480 A/B Problem

题目地址:

https://www.luogu.com.cn/problem/P1480

题目描述:
输入两个整数 a , b a,b a,b,输出它们的商。

输入格式:
两行,第一行是被除数,第二行是除数。

输出格式:
一行,商的整数部分。

数据范围:
0 ≤ a ≤ 1 0 5000 0\le a\le 10^{5000} 0a105000 1 ≤ b ≤ 1 0 9 1\le b\le 10^9 1b109

模拟竖式除法即可。代码如下:

#include <iostream>
using namespace std;

string a, res;
long b;

int main() {
  cin >> a >> b;
  long t = 0;
  for (int i = 0; i < a.size(); i++) {
    res.push_back((t * 10 + a[i] - '0') / b + '0');
    t = (t * 10 + a[i] - '0') % b;
  }

  int i = 0;
  while (i + 1 < res.size() && res[i] == '0') i++;
  cout << res.substr(i) << endl;
}

时间复杂度 O ( log ⁡ a ) O(\log a) O(loga),空间 O ( 1 ) O(1) O(1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值