高精度模运算,即取余数(%)的运算,怎么搞? 能否优化得更快更好?
发布网友
发布时间:2022-04-27 01:43
我来回答
共2个回答
热心网友
时间:2023-11-16 05:42
给你看一个,使用高精度出发来解决mod运算#include "iostream.h"
#include "stdio.h"
#include "string.h"
int mod1(char *a1,int b) {
int a[5000] = {0};
int c[5000] = {0};
int i, k, d;
k = strlen(a1);
for(i = 0; i < k; i++) a[i] = a1[k - i - 1] - '0';
d = 0;
for(i = k - 1; i >= 0 ; i--)
{
d = d * 10 + a[i];
c[i] = d / b;
d = d % b;
}
//c[1000]存放着商
while(c[k - 1] == 0 && k > 1) k--;
printf("商=");
for(i = k - 1; i >= 0; i--) printf("%d", c[i]);
printf("\n余数=%d", d); if (d==0)
{
return true;
}
else return false;
}
int main()
{
mod1("123456789456123",10);
cout<<endl;
mod1("12",5);
return 0;
}
热心网友
时间:2023-11-16 05:43
优化?你这是数学问题……不想头疼了……