高精度数取余(C\C++)
2017-10-23 13:40
134 查看
高精度数是OJ题目中最主要的一类题
用数组去模拟高精度数是目前最常用的方法
除此之外,还可以通过使用string去模拟也是可以的
取余,是高精度数中主要的一个算法。
这里主要展示自己的高精度数取余的一个操作函数
算法思路:
模拟数学中关于除法,和余数的定义,根据竖式表达式运算得到
PS:注意点是,temp部分是必须的,避免更改原来的数据,所以不能使用
a[i] += flag;操作
高精度数,附有取余操作的代码如下:
加上main函数部分,就可以做出SOJ1020题
用数组去模拟高精度数是目前最常用的方法
除此之外,还可以通过使用string去模拟也是可以的
取余,是高精度数中主要的一个算法。
这里主要展示自己的高精度数取余的一个操作函数
算法思路:
模拟数学中关于除法,和余数的定义,根据竖式表达式运算得到
PS:注意点是,temp部分是必须的,避免更改原来的数据,所以不能使用
a[i] += flag;操作
int Chu_left(int n){ int flag = 0,temp = 0; for (int i = 0; i < size; ++i){ flag *= 10; temp = a[i] + flag; flag = temp % n; } return flag; }
高精度数,附有取余操作的代码如下:
struct Num{ int *a; int size; Num(){ a = new int[100]; size = 0; } Num(string &s){ a = new int[s.size()]; size = 0; for (int i = 0; i < s.size(); ++i){ a[i] = s[i] - '0'; } size = s.size(); } int Chu_left(int n){ int flag = 0,temp = 0; for (int i = 0; i < size; ++i){ flag *= 10; temp = a[i] + flag; flag = temp % n; } return flag; } ~Num(){ delete[] a; } };
加上main函数部分,就可以做出SOJ1020题
int main(){ int time, array_size, array[100], ans_array[100]; cin >> time; while (time--) { cin >> array_size; for (int i = 0; i < array_size; ++i){ cin >> array[i]; } string num; cin >> num; Num n(num); cout<< "("; for (int i = 0; i < array_size; ++i){ cout << n.Chu_left(array[i]); if (i != array_size-1){ cout << ","; } else { cout << ")\n"; } } } }
欢迎关注我用于做笔记的公众号:肥宅Sean笔记
相关文章推荐
- (高精度运算4.7.27)UVA 10494 If We Were a Child Again(大数除法&&大数取余)
- Sicily 1231. The Embarrassed Cryptography【高精度取余】
- poj 2305 Basic remains 高精度取余
- UVA 10494 - If We Were a Child Again(高精度除法和取余)
- 高精度取余运算的一个方法
- UVA 10494 - If We Were a Child Again(高精度除法和取余)
- Sicily 1028. Hanoi Tower Sequence【高精度取余和除法】
- hdu5832-ccpc网络赛 -高精度取余
- (高精度运算4.7.27)UVA 10494 If We Were a Child Again(大数除法&&大数取余)
- 高精度之 加减乘除除取余(课设专用)
- 大数对小数取余
- 关于PT100的高精度测温电路,使用AD623+REF3030组合(很稳定)
- 基于FPGA的高精度数字信号发生器
- 无线OSS-高精度整数加法(加数可以为负数,应实现高精度加减法)
- 高精度加法和乘法的c++实现
- AD7190之STM32程序——STM32测试高精度ADC篇(三)
- OpenCV 基于距离变换的高精度轮廓匹配
- poj 2325 Persistent Numbers(高精度除法+贪心)
- COGS 2482. Franky的胡子【二分,高精度】
- POJ2084—Game of Connections(c++高精度)