| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2730 人关注过本帖, 1 人收藏
标题:高精度加法
取消只看楼主 加入收藏
Leo_L
Rank: 2
等 级:论坛游民
帖 子:21
专家分:27
注 册:2017-2-26
结帖率:71.43%
收藏(1)
已结贴  问题点数:10 回复次数:2 
高精度加法
这个题,我提交后所有的测试数据都是错的,但我按照测试数据运行的结果都对啊,不知道怎么回事,求大神教
本小白的代码风格介于c++和c之间。。。求勿喷

/*
问题描述
  输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。
算法描述
  由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。
  定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。
  计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数
存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]与B[1]相加,这时还应将低位进上来的值r也加起来,即C[1]应该
是A[1]、B[1]和r三个数的和.如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C[1]中。依此类推,即
可求出
C的所有位。
  最后将C输出即可。
输入格式
  输入包括两行,第一行为一个非负整数a,第二行为一个非负整数b。两个整数都不超过100位,两数的最高位都不是0。
输出格式
  输出一行,表示a + b的值。
样例输入
20100122201001221234567890
2010012220100122
样例输出
20100122203011233454668012
*/
#include<iostream>
#include<string>
using namespace std;
int main(){
    int a[100],b[100],sum[110],r=0,la=0,lb=0,i=0,j=0,k=0,ii=0;
    string s;
   
    cin>>s;
    while(s[la]){
        a[la++]=s[la]-'0';
    }
    cin>>s;
    while(s[lb]){
        b[lb++]=s[lb]-'0';
    }
   
   
    for(i=la-1,j=lb-1,k=0;i>=0&&j>=0;i--,j--,k++){
        sum[k]=(a[i]+b[j]+r)%10;
        r=(a[i]+b[j]+r)/10;
    }
   
   
    if(la==lb){
        while(--la>=0)cout<<sum[la];
    }
    else if(la>lb){
        sum[k]=a[i]+r;
        while(--i>=0){
            sum[++k]=a[i];
        }
        while(--la>=0)cout<<sum[la];
   
    }
    else{
         sum[k]=b[j]+r;
        while(--j>=0){
            sum[++k]=b[j];
        }
        while(--lb>=0)cout<<sum[lb];
        
    }
    return 0;
}
搜索更多相关主题的帖子: 风格 
2017-04-07 15:13
Leo_L
Rank: 2
等 级:论坛游民
帖 子:21
专家分:27
注 册:2017-2-26
收藏
得分:0 
回复 3楼 rjsp
什么叫做定义行为呀?

元气少女Leo_L
2017-04-07 16:02
Leo_L
Rank: 2
等 级:论坛游民
帖 子:21
专家分:27
注 册:2017-2-26
收藏
得分:0 
回复 3楼 rjsp
所以我是需要把这个拆开写对咩?

元气少女Leo_L
2017-04-07 16:07
快速回复:高精度加法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042483 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved