香辛料575 2022-03-28 19:14 采纳率: 80%
浏览 31
已结题

编写两百位以内数字的加法的算法时出现了奇怪的问题

我在编写一个有关两百位以内数字的加法的算法。编完之后,我发现我的算法出现了很奇怪的问题。比如这种,66+99=651.
我发现我应该出现在的百分位的数出现在了个位。如果运算的过程中不出现进位的话,最后一位就会变成0 。就比如22+33=550 。我检查了三个小时,实在没有找到为什么会这样,不知是否有老哥有空愿意解答一下,真的万分感谢!(;へ:)


#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
using namespace std;



int main()
{
    int a_length = 0, b_length = 0;
    int temp0=0;

    int t1=0, t2=0, t3=0, t4=0,t5=0,t6=0;//这相当于一些临时变量,用于传递值

    string temp;
    string a , b;
    cin >> a >> b;
    a_length = a.length();
    b_length = b.length();
    
    if (a_length < b_length)
    {
        temp = a;
        a = b;
        b = temp;
        temp0 = a_length;
        a_length = b_length;
        b_length = temp0;
    }


    reverse(a.begin(), a.end());
    reverse(b.begin(), b.end());
    a[a_length] = '0';
    b[b_length] = '0';

    for (int i=0;i<=b_length;i++)
    {
        t1 = (int)a[i]-48;
        t2 = (int)b[i]-48;

        for (;;)
        {
            if (t1 + t2+t3 > 9)
            {
                t5 = (t1 + t2+t3) % 10;
                t6 = (t1 + t2+t3) / 10;
                a[i] = (char)(t5 + 48);
                ++i;
                t1 = (int)a[i] - 48;
                t2 = (int)b[i] - 48;
                t3 = t6;

            }
            else
            {
                a[i] = (char)(t1 + t2+t3 + 48);
                t3 = 0;
                break;
            }
        }
    }

    reverse(a.begin(), a.end());
    a_length = a.length();


    for (int i = 0,w=0; i <= a_length; i++)
    {
        if (a[i] == '0'&&w==0)
            continue;
        else
        {
            w = 1;
            cout << a[i];
        }
    }

    a[0] = 'a';
    b[0] = 'b';

}




img

  • 写回答

2条回答 默认 最新

  • 赵4老师 2022-03-28 20:50
    关注

    小心0+0

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月6日
  • 已采纳回答 3月29日
  • 创建了问题 3月28日

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 如何将下列的“无限压缩存储器”设计出来
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口