| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1182 人关注过本帖
标题:任何解决2个十进制长整数和问题
只看楼主 加入收藏
wuqingzmqa
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-27
收藏
 问题点数:0 回复次数:8 
任何解决2个十进制长整数和问题
题目是 求2个十进制长整数和
如:求5646548678213213213213+13541545435454
搜索更多相关主题的帖子: 整数 十进制 
2007-09-27 12:36
wuqingzmqa
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-27
收藏
得分:0 
回复:(wuqingzmqa)任何解决2个十进制长整数和问题
还有就是要用C语言来解决啊~~~~~~我刚开始接触C语言呢
2007-09-27 12:37
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
收藏
得分:0 

可以用数组


Repeat  Life=Study;Until (death);
2007-09-27 12:38
wuqingzmqa
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-27
收藏
得分:0 
能详细写一下吗   怎么相加?
2007-09-27 12:56
josen0205
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
收藏
得分:0 

用栈实现可能要方便一些,建议用三个栈分别存放两个操作数和结果


只有想不到,没有做不到
2007-09-27 14:33
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
收藏
得分:0 
链表也可以,不过建议去雨中飞燕那里看看
那里有好的解法

You have lots more to work on! Never give up!c language!
2007-09-27 14:40
hustmumu
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-11-8
收藏
得分:0 
用块链处理,4位一块,符合中国人习惯,或者3位一块,符合西方习惯。
2007-12-29 10:59
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
100位要多改数组
/*大数相加小于100位*/
#include<stdio.h>
#include<math.h>
int main(void)
{
    int a[100]={0},b[100]={0},c[101],tem[100];
    int i=0,j,max=0,min=0,temp=0,num=0;
    char ch;
    /*clrscr();*/
    printf("Please one num:\n");
    while((ch=getchar())!='\n')
      {a[max]=ch-48;
       max++;}

    printf("Please two num:\n");
    while((ch=getchar())!='\n')
        {b[min]=ch-48;
         min++;}

    if(max<min)
      {
        for(i=0;i<min;i++)
         {
           if(i<(min-max))
          tem[i]=0;
           else if(i>=(min-max))
          {tem[i]=a[abs(min-max-i)];}
         }
         for(i=0;i<min;i++)
           a[i]=tem[i];
        max=min;
      }
     if(max>min)
       {
        for(i=0;i<max;i++)
         {
           if(i<(max-min))
          tem[i]=0;
           else if(i>=(max-min))
          {tem[i]=b[abs(max-min-i)];}
         }
         for(i=0;i<max;i++)
           b[i]=tem[i];

      }

    for(i=max-1;i>=0;i--)
      {
        if((a[i]+b[i])<10)
          { if(temp==1)
              {
            c[i+1]=(a[i]+b[i]+temp)%10;
            if((a[i]+b[i]+temp)%10==0)
              temp=1;
            else
              temp=0;
              }

            else
              c[i+1]=a[i]+b[i]+temp;
          }
        else if(a[i]+b[i]>=10)
           {
              c[i+1]=(a[i]+b[i])%10+temp;
              temp=(a[i]+b[i])/10;
           }

      }
      if((a[0]+b[0])>=10)
        { c[0]=temp;
          num=0;}
      else
         num=1;

     printf("\n");
     printf("Sum is Value :\n");
     for(j=num;j<max+1;j++)
       printf("%d",c[j]);
     getch();
     return 0;

}
2007-12-30 16:49
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
连续输入.
2007-12-30 17:33
快速回复:任何解决2个十进制长整数和问题
数据加载中...
 
   



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

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