【题解】高精度 | 数学 牛客周赛Round 51 D 小红的gcd

题目链接:牛客周赛Round 51 D
周日的时候没仔细读,今天重看发现a是比b大很多的,算是一个高精度除法的问题,读入采用string类型,对于string类型的处理就是用一个char类型的变量去遍历,减去字符0得到数字值,从高位到低位转化刚好就是字符串的0到末尾,按顺序取出转化成数字,先前已经转化的部分乘以10再加上新转化的数字(就相当于在之前的数字末尾再加一位),每次转化都及时对b取模,最后得到与b规模相近的数值,使用__gcd(a, b)函数求得最大公因数。

梳理一下步骤:
  1. 较大的a按string类型读入,较小的b就按long long类型读;
  2. 遍历a,对其进行逐位还原,以string str = ‘123’为例, s t r [ 0 ] = ′ 1 ′ str[0] = '1' str[0]=1 s t r [ 0 ] − ′ 0 ′ = 1 str[0] - '0' = 1 str[0]0=1(整数1), 1 × 10 + s t r [ 1 ] − ′ 0 ′ = 12 1\times10 + str[1] - '0' = 12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值