高精除
来源:互联网 发布:复制别人的淘宝店铺 编辑:程序博客网 时间:2024/06/11 00:52
#include <cstdio>#include <iostream>#include <cstring>#include <string>using namespace std;int a[101], b[101], c[101], la, lb, lc;void init(int a[]) //这里的a[]相当于一个变量,实际上输出的可以输数组b或者数组c,不能省略{ string s; cin >> s; a[0] = s.length(); for (int i = 1; i <= a[0]; i++) { a[i] = s[a[0] - i] - '0'; }}void print(int a[]){ if (a[0] == 0) { printf("0\n"); } for (int i = a[0]; i >= 1; i--) { printf("%d", a[i]); } printf("\n"); return;}int compare (int a[], int b[]){ if (a[0] > b[0]) return 1; if (a[0] < b[0]) return -1; for (int i = a[0]; i > 0; i--) { if (a[i] > b[i]) return 1; if (a[i] < b[i]) return -1; } return 0;}void jian(int a[], int b[]){ int flag = compare(a, b); if (flag == 0) { a[0] = 0; return; } if (flag == 1) { for (int i = 1; i <= a[0]; i++) { if (a[i] < b[i]) { a[i + 1]--; a[i] += 10; } a[i] -= b[i]; } while (a[0] > 0 && a[a[0]] == 0) a[0]--; return; }}void numcpy(int p[], int q[], int det) //复制p数组到q数组从det开始的地方{ for (int i = 1; i <= p[0]; i++) { q[i + det - 1] = p[i]; } q[0] = p[0] + det - 1;}void chugao(int a[], int b[], int c[]){ int tmp[101]; c[0] = a[0] - b[0] + 1; //一定吗? for (int i = c[0]; i > 0; i--) { memset(tmp, 0, sizeof(tmp)); numcpy(b, tmp, i); while (compare(a, tmp) >= 0) { c[i]++; jian(a, tmp); } } while (c[0] > 0 && c[c[0]] == 0) c[0]--; return;}int main(){ init(a); init(b); chugao(a, b, c); print(c); //商 print(a); //余数 return 0;}
代码大部分是信息学奥赛一本通上的,输入输出啥的我自己稍微改了一下,感觉比他写得好看。
忘函数里传数组真的很强,并且他把数组长度存在了a[0]里,我原先觉得这样很不规范(蒟蒻的碎碎念),后来发现这样就能一起传进函数里了, 超强= =
【高精度就这样了。。。。。基本思想。。。还是知道的吧。。考场上如果有大空。。。应该能磨叽出来(:з」∠)不想看了,应该大丈夫!】
0 0
- 高精除
- 高精度之高精除低精
- 高精度除法(高精除高精)
- 【基础代码】高精{加.减.乘.除}
- 1028. Hanoi Tower Sequence (高精,除2)
- 【高精度模板】【高精加减乘没有除】
- 西行寺幽幽子(恶心的高精除)
- 高精度系列——反正高精除高精我不会
- 高精度除法(高除高)
- pascal 高精度压位(加减乘&高精除单精)
- 树屋阶梯(卡特兰数+高精除低精+高精乘低精)
- 二叉树计数2(卡特兰数+高精乘低精+高精除低精)
- 压位高精模板(支持加法、高精乘低精、高精除低精)
- noip2012 国王游戏 (高精除,高精乘+大数比较与替换+数论)
- 浮点数计算精度: 先乘后除 vs 先除后乘 ,前者精度高
- WinAPI: SetTimer、KillTimer - 创建与移除高性能定时器
- Android 高德地图移除指定的marker
- Delphi WinAPI: SetTimer、KillTimer - 创建与移除高性能定时器
- YYII框架中表单提交出现Bad Request (#400)---Unable to verify your data submission的错误解决方法
- 实验室(搜索->记忆化搜索->动规优化)
- vijos[P1054] luogu[P2662] 牛场围栏 (数论+最短路,(DP可水过))
- 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
- C语言 九九乘法表
- 高精除
- LruCache
- c#批量插入数据到数据库【支持事务操作】
- 一会儿的谈话
- RunLoop 和 RunTime 的一些见解
- TODO:Node.js pm2使用方法
- Linux命令-(ln)链接命令
- 自定义View
- 字符串操作