作业帮 > 综合 > 作业

求大神帮忙C语言大数取模运算啊

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/02 23:02:55
求大神帮忙C语言大数取模运算啊
给出a,b两个数,a
求大神帮忙C语言大数取模运算啊
#include #include
long mod(char a[], long b)
{
long _try_ = 0;
int i;
int l = strlen(a);

for(i = 0; i < l; ++i) {
_try_ = _try_ * 10 + a[i] - 48;
if(_try_ > b)
{
_try_ = _try_ % b;
}
}
return _try_;
}
int main()
{
char a[1001];
long b;
scanf("%s%ld", a, &b);
printf("%ld\n", mod(a, b));
return 0;
}
再问: 这个函数是什么个思路呢 谢谢
再答: 数字太大,只能用字符数组存。然后转化为数字即可。举个例子吧: 999 % 8; _try_ = 9 > 8 //只要大于8,就求余 _try_ = 9 % 8 => _try_ = 1; _try_ = 1 * 10 + 9 => _try_ = 19 > 8 _try_ = 19 % 8 => _try_ = 3 _try_ = 3 * 10 + 9 => _try_ = 39 > 8 _try_ = 39 % 8 => _try_= 7 所以999%8=7 算法就是这个思路。由于用字符表示数。所以每次增加一位数字,要将之减48,变为0-9