| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2995 人关注过本帖
标题:新手求助: 怎么实现超大数据的加法
只看楼主 加入收藏
iFreeBSD
Rank: 4
等 级:业余侠客
威 望:4
帖 子:474
专家分:236
注 册:2007-11-5
收藏
得分:0 
9楼先试试 99 + 1  9864 + 245 等于多少

[[it] 本帖最后由 iFreeBSD 于 2008-7-20 23:31 编辑 [/it]]

without further ado, let’s get started
2008-07-20 23:24
iFreeBSD
Rank: 4
等 级:业余侠客
威 望:4
帖 子:474
专家分:236
注 册:2007-11-5
收藏
得分:0 
9楼先试试 99 + 1  9864 + 245 等于多少

without further ado, let’s get started
2008-07-20 23:28
qxykzx
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-7-17
收藏
得分:0 
谢谢,楼上,我少考虑了
我改了这一句,你说的那个问题没有了  
if((A[i-1]+B[i-1]-2*'0')>9||x==1)
请多指教!!!
#include <string.h>
#define MAX 127
main()
{int i,m,x=0;
 char A[MAX]="0",B[MAX]="0",C[MAX]="0";
 printf(
 "Please input A:\n");
 scanf("%s",A);
 printf("Please input B:\n");
 scanf("%s",B);
 strrev(A);
 strrev(B);
 if(strlen(A)>strlen(B))
   m=strlen(A);
 else
   m=strlen(B);
 for(i=0;i<m;i++)
  {
   if(A[i]<'0'||A[i]>'9')
    A[i]='0';
   if(B[i]<'0'||B[i]>'9')
    B[i]='0';
   C[i]=A[i]+B[i]+x;
   if((C[i]-2*'0')>9)
    {C[i]=C[i]-'0'-10;x=1;}
   else
    {C[i]=C[i]-'0';x=0;}
  }
  if((A[i-1]+B[i-1]-2*'0')>9||x==1)
  C[i]='1';
 strrev(C);
 printf("%s\n",C);
 system("pause");
}
2008-07-21 10:22
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
LS干嘛写得那么复杂??刚才闲的无聊写了一个。注意仅限正数。

#include <stdio.h>
#include <string.h>

char* BigAdd(char* lv,const char* rv)
{
    char *ret=lv;
    for (int eax=0 ; eax
            | (*rv ? eax+=*rv-'0' , rv++ , 1:0)
            | (*lv ? eax+=*lv-'0' , 1:lv[1]=0) ; eax/=10)
        *lv++ = eax%10+'0';
    while (--lv!=ret && *lv=='0') *lv=0;
    return ret;
}

int main()
{
    char lv[1000],rv[1000];
    while (scanf("%1000[^ +] + %1000[0-9]%*c",lv,rv)!=EOF)
        printf("= %s\n",_strrev(BigAdd(_strrev(lv),_strrev(rv))));
}

[[it] 本帖最后由 StarWing83 于 2008-7-21 12:49 编辑 [/it]]

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-21 11:50
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
收藏
得分:0 
如果我来评判,我还是喜欢13楼的代码。
14楼的不叫简单,只能算是代码的行数少而已,适合去做研究吧。哈哈
2008-07-21 11:53
qxykzx
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-7-17
收藏
得分:0 
虚心向13#学习
代码完全没看懂,看来差距还真大,要努力!!!
不过这如14#所说,这样的代码楼主看会也很吃力。
努力努力!!!
2008-07-21 12:05
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
[bo][un]woshiyun[/un] 在 2008-7-21 11:53 的发言:[/bo]

如果我来评判,我还是喜欢13楼的代码。
14楼的不叫简单,只能算是代码的行数少而已,适合去做研究吧。哈哈


问题在于,如果代码再展开,就会有重复操作了……为了让必要的工作只做一次,就只好这么写。
13#的也太过复杂了……很多地方不简练……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-21 12:12
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
13#试验一下000+00这种数据。刚刚我发现我的有Bug,所以改了代码……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-21 12:51
快速回复:新手求助: 怎么实现超大数据的加法
数据加载中...
 
   



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

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