高精度加高精度


【问题描述】
  有两个位数在200以内的高精度数a和b,请编程求出a与b之和。
  输入:两行,第一行为a,第二行为b。
  输出:一行,表示a与b之和C。
  注意:a与b的位数不一定相同。

【输入样例】

  省略

【输出样例】

  省略

 

复制代码
#include<iostream>
#include<cstring>
using namespace std;

int main()
{
    char a[201], b[201];
    int a2[201]={}, b2[201]={}, c, c2[202]={}, d2[205]={};
    cin >> a >> b;
    int lena = strlen(a), lenb = strlen(b);
    for(int i=0; i<=lena-1; i++)
        a2[lena-i] = a[i] - 48; // 下标从1开始的。
    for(int i=0; i<=lenb-1; i++)
        b2[lenb-i] = b[i] - 48; // 下标从1开始的。
    // 高精度加法
    int maxlen = max(lena, lenb), jw=0, i;
    for(i=1; i<=maxlen; i++)
    {
        int t = a2[i] + b2[i] + jw;
        jw = t/10;
        c2[i] = t%10;
    }
    if(jw) c2[i] = jw;
    else i--;
    for(int j=i; j>=1; j--)
        cout << c2[j];
    return 0;
}
复制代码

 

posted @   Hi,小董先生  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示