码迷,mamicode.com
首页 > 编程语言 > 详细

[高精度算法]高精度算法

时间:2018-01-13 23:55:29      阅读:347      评论:0      收藏:0      [点我收藏+]

标签:color   class   using   相加   mem   ...   算法   保留   post   

高精度加法第三次学习...内容自己理解吧

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 using namespace std;
 5 #define MAXLEN 110
 6 int main(){
 7     char a1[MAXLEN],b1[MAXLEN];//输入的原始加数字符串
 8     int a[MAXLEN],b[MAXLEN],c[MAXLEN],lena,lenb,lenc,x;//分别存储两个加数,结果,加数的结果的长度和进位 
 9     memset(a,0,sizeof(a));
10     memset(b,0,sizeof(b));
11     memset(c,0,sizeof(c));//初始化
12     scanf("%s%s",a1,b1);
13     lena = strlen(a1); 
14     lenb = strlen(b1);//计算两个字符串的长度
15     for(int i=0;i <= lena - 1;i++)
16         a[lena -i]=a1[i] -0;//加数放入a数组 
17     for(int i = 0;i <= lenb - 1;i++)
18         b[lenb - i]=b1[i] - 0;//加数放入b数组
19     lenc = 1;
20     x = 0;
21     while(lenc <= lena || lenc<= lenb){
22         c[lenc] = a[lenc] + b[lenc] +x;//两数相加 
23         x = c[lenc] / 10;                //计算进位 
24         c[lenc] %= 10;                    //本位保留的数 
25         lenc++;
26     } 
27     c[lenc] = x;
28     if(c[lenc] == 0)
29         lenc--;//处理最高进位 
30     for(int i = lenc; i>=1; i--)
31         cout << c[i];//输出结果
32     cout<<endl;
33     return 0; 
34 }

 

[高精度算法]高精度算法

标签:color   class   using   相加   mem   ...   算法   保留   post   

原文地址:https://www.cnblogs.com/wwcjj/p/8280624.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!