高精度除法
来源:互联网 发布:tensorflow 指定gpu 编辑:程序博客网 时间:2024/05/19 12:11
下面给出高精度除法的源代码,可以实现任意除法计算至循环。
#include<iostream>#include<Windows.h>using namespace std;bool CheckIfLoop(int *remainarr, int length, int remain,int loop);int main(){ int dividend, divisor, remain=0,k=0;//dividend为被除数,divisor为除数,remain为余数,k为当前余数列表 cout << "请输入被除数与除数:"; cin >> dividend >> divisor; int *remainarr = new int[512]; cout << "结果为:"; cout << dividend / divisor; if (remain != 0 || dividend%divisor!=0)//余数为0,除尽,结束循环 { cout << ".";//输出小数点 } remain = dividend%divisor; while (CheckIfLoop(remainarr, 512, remain,k) && remain!=0) { remainarr[k] = remain; remain *= 10; cout << remain / divisor; remain %= divisor; if (k < 512) { k++; } } system("pause"); return 0;}bool CheckIfLoop(int *remainarr, int length, int remain, int loop){ static int looptime = 0; for (int i = 0; i < length; i++) { if (remainarr[i] == remain) { cout << "(无限循环开始,周期:" << looptime << ")"<<endl; remainarr[loop] = remain; return 0; } } looptime++; return 1;}
说明,余数列表设为512位是根据相关定理,所有分数都是有理数,并且是循环小数,开始我把余数列表的长度定位除数的大小,但是后来发现这样在余数很大的情况下十分占用内存,所以设定为了512,在一定范围内有效。
0 0
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 高精度除法
- 代码块
- MyBatis 源码分析——配置信息
- Emacs 互换CapsLock和Alt(option)键位
- hdu 2084 数塔
- Https单向认证和双向认证
- 高精度除法
- 基于Opencv实现Matlab的bwmorph中的bridge操作
- android播放音频,视频的操作及注意事项
- java中的变量
- HDU1300 Pearls (动态规划)
- [caffe笔记004]: caffe添加新层之添加maxout层
- 【BATCH程序】反熊孩子神器
- 17.2 边缘触发和条件触发
- 函数