搜索
查看: 885|回复: 1
打印 上一主题 下一主题

高进度加法

[复制链接]
跳转到指定楼层
楼主
发表于 2015-10-10 00:00:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main()
{
        int i, j, k,len1,len2,lager, temp,carry = 0;
        char a[201], b[201], c[202];
        scanf("%s%s", a,b);
        len1 = strlen(a);
        len2 = strlen(b);        
        if(len1 > len2)        lager=len1+1;
        else        lager=len2+1;
        for(i=0;i<=lager-1;i++)
                c='0';
        c[lager] = '\0';
        i=len1-1;
        j=len2-1;
        k=lager-1;
        while(i>=0 || j>=0)
        {
      temp = carry;
      if(i>=0) temp += a - '0';
      if(j>=0) temp += b[j] - '0';
      if (temp >= 10) {
         c[k] = temp - 10 + '0';
         carry = 1;
      } else {
         c[k] = temp + '0';
         carry = 0;
      }
           i--; j--; k--;
        }
        c[k] = carry + '0';

        if(c[0]!='0') printf("%c",c);
        for(i=1;i<=lager-1;i++)
        {
                printf("%c",c);
        }
        system("pause");
        return 0;
}[/mw_shl_code]
沙发
发表于 2015-10-11 09:12:09 | 只看该作者
额这个好像是Win7计算器加法算法
另外问一下整数变字符串和字符串变整数的算法
还有可以用C++的string和vector
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表