博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
信息学奥赛一本通算法(C++版)基础算法:高精度计算
阅读量:7293 次
发布时间:2019-06-30

本文共 1738 字,大约阅读时间需要 5 分钟。

高精度加法(大位相加)

1 #include 
2 using namespace std; 3 int main() 4 { 5 char a1[100],b1[100]; 6 int a[100],b[100],c[100];//a,b,c分别存储加数,加数,结果 7 int lena,lenb,lenc,x,i; 8 memset(a,0,sizeof(a));//数组a清零 9 memset(b,0,sizeof(b));//数组b清零10 memset(c,0,sizeof(c));//数组c清零11 //gets(a1);12 //gets(b1);13 //getchar();14 while(scanf("%s%s",&a1,&b1)!=EOF)15 {16 lena=strlen(a1);17 lenb=strlen(b1);18 for(i=0;i<=lena;i++)19 a[lena-i]=a1[i]-'0';//将数串a1转化为数组a,并倒序存储20 //a[i]=a1[lena-i-1]-48;21 for(i=0;i<=lenb;i++)22 b[lenb-i]=b1[i]-'0';//将数串a1转化为数组a,并倒序存储23 //b[i]=b1[lenb-i-1]-48;24 lenc=1; //lenc表示第几位25 x=0; //x是进位26 while(lenc<=lena||lenc<=lenb)27 {28 c[lenc]=a[lenc]+b[lenc]+x;//第lenc位相加并加上次的进位29 x=c[lenc]/10;//向高位进位30 c[lenc]%=10;//存储第lenc位的值31 lenc++;//位置下标变量32 }33 c[lenc]=x;34 if(c[lenc]==0)35 lenc--; //处理最高进位36 for(i=lenc;i>=1;i--)37 cout<

 高精度减法(大位相减)

1 #include 
2 using namespace std; 3 int main() 4 { 5 char n[256],n1[256],n2[256]; 6 int a[256],b[256],c[256]; 7 int lena,lenb,lenc,i; 8 memset(a,0,sizeof(a)); 9 memset(b,0,sizeof(b));10 memset(c,0,sizeof(c));11 while(scanf("%s%s",&n1,&n2)!=EOF)//n1为被减数,n2为减数12 {13 if(strlen(n1)
<0))//strcmp()为字符串比较函数,当n1==n2,返回0;n1>n2时,返回正整数;n1
1))39 lenc--;//最高位的0不输出40 for(i=lenc;i>=1;i--)41 cout<

 

转载于:https://www.cnblogs.com/ECJTUACM-873284962/p/6509887.html

你可能感兴趣的文章
exgcd证明和最基础应用
查看>>
前端图片预览
查看>>
[Python]网络爬虫(八):糗事百科的网络爬虫(v0.2)源码及解析(转)
查看>>
5大食物千万别挑太艳的
查看>>
noi同步赛day1
查看>>
TotoiseSVN的基本使用方法
查看>>
牛客练习赛37
查看>>
2016.8.11 禁用360进程防护功能
查看>>
JS 图片预加载
查看>>
Smarty 模板 insert 局部刷新不缓存功能
查看>>
Android之json数据解析
查看>>
android开发者看过来!一个关于微信某功能的讨论!
查看>>
快速排序,冒泡排序,选择排序
查看>>
jni不通过线程c回调java的函数
查看>>
jade(pug)学习笔记(待填充.......)
查看>>
unity探索者之socket传输protobuf字节流(四)
查看>>
计算机程序和C++语言简介
查看>>
第26章 java进制操作
查看>>
查看哪些类里调用了这个方法
查看>>
javascript History对象
查看>>