加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

hdu1212大数求余

发布时间:2020-12-14 03:43:56 所属栏目:大数据 来源:网络整理
导读:/*解题思路:分解为十进制的一位,每位求余一次。即设str[0--n]为大数(0为个位,1为十位,2为百位,...)有ans[0] = str[0] % b;ans[1] = str[1] * 10 % b;...ans[n] = str[n]*10^n % b;这里要解决对10的n次方求余的问题,其实很简单,设temp[k]=10^k%b,必有
/*解题思路:分解为十进制的一位,每位求余一次。即设str[0--n]为大数(0为个位,1为十位,2为百位,...)
有
ans[0] = str[0] % b;
ans[1] = str[1] * 10 % b;
.
.
.
ans[n] = str[n]*10^n % b;
这里要解决对10的n次方求余的问题,其实很简单,设temp[k]=10^k%b,必有
temp[k] = temp[k] * 10 %b;
那么,得出最后的方程为
ans[k] = str[k] * temp[k] % b;
ans = ans[0]+...+ans[n];
其实就简单的求余操作。。。
*/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
char str[1050];
int n,i,j;
int b;
while(scanf("%s",str) != EOF)
{
scanf("%d",&b);
int ans = 0,temp = 1;
n = strlen(str);
for(i = n-1; i >= 0; i--)
{
ans += (((str[i] - '0') * temp) % b);
ans = ans % b;
temp = ((temp *10) %b);
}
printf("%dn",ans);
}
return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读