高精度减法模板
来源:互联网 发布:serializearray转json 编辑:程序博客网 时间:2024/05/22 06:22
#include<iostream>#include<stdio.h>#include<cstring>using namespace std;int Substraction (int c[], int len1, int d[], int len2, int e[]) //减法{ int i=0, ans=0; while(i <= len1-1 || i <= len2-1) { e[i] = c[i] - d[i] - ans; if(e[i] < 0) { ans = 1; e[i] = e[i] + 10; //是否需要借位 } else { ans = 0; } i++; } return i-1;}int main(){ char a[500],b[500]; int c[500],d[500],e[500]; int len1, len2, len3; memset(c,0,sizeof(c)); memset(d,0,sizeof(d)); memset(e,0,sizeof(e)); scanf("%s", a); scanf("%s", b); len1 = strlen(a); len2 = strlen(b); for (int i = 0; i <= len1-1; i++ ) { c[len1 - i - 1] = a[i] - '0'; } for (int i = 0; i <= len2-1; i++ ) { d[len2 - i - 1] = b[i] - '0'; } if(len1 > len2 || (len1 == len2 && strcmp(a,b) >= 0)) { len3 = Substraction(c, len1, d, len2, e); int i; for(i = len3; i > 0; i--) if(e[i]) break; for(; i >= 0; i--) printf("%d", e[i]); printf("\n"); return 0; } else { cout <<"-"; len3 = Substraction(d, len2, c, len1, e); int i; for(i = len3; i > 0; i--) if(e[i]) break; for(; i >= 0; i--) printf("%d", e[i]); printf("\n"); return 0; }}
// code(vs)3115
1 0
- 高精度减法模板
- 高精度之减法模板
- 高精度减法模板
- 高精度模板(减法)
- 高精度减法
- 高精度减法
- 高精度减法
- 高精度减法
- 高精度减法
- 高精度减法
- 高精度减法
- 高精度减法
- 高精度减法
- 高精度减法
- 高精度减法
- 高精度减法
- 高精度减法
- 高精度减法
- 关于Linux文件的那些事情之一
- PhysX3.3.4 snippets—SnippetHelloWorld (3)
- 初识STL
- Shell 概述
- linux安装包管理(未完待续)
- 高精度减法模板
- 一个有趣的并行程序
- JavaScript(一)
- 欢迎使用CSDN-markdown编辑器
- 翻译《有关编程、重构及其他的终极问题?》——5.使用工具去分析你的代码
- 文件描述符、文件描述符表、打开文件表、目录项、索引节点之间的联系
- 教务管理系统流程图
- Halcon的HWindowControl控件在WinForm程序中的使用介绍
- Class 'org.springframework.orm.hibernate3.LocalSessionFactoryBean' not found