低质高精度问题
  • 板块灌水区
  • 楼主Mr_yang1
  • 当前回复13
  • 已保存回复13
  • 发布时间2024/8/16 11:14
  • 上次更新2024/8/16 13:59:36
查看原帖
低质高精度问题
1390324
Mr_yang1楼主2024/8/16 11:14

哇塞塞,关于本蒟蒻蒟蒻用scratch搓了个高精度加法

(禁盗)

而且还能去除前导0,哇咔咔真是太帅了

但是!!!

老实了

my 丑陋至极 的 code:

#include <iostream>
#include <cstring>
using namespace std;
int a[1000010], b[1000010], re[1000010];
int main() {
    memset(a, 0, sizeof(a));
    memset(b, 0, sizeof(b));
    memset(re, 0, sizeof(re));
    string sa, sb;
    cin >> sa >> sb;
    int la = sa.size(), lb = sb.size();
    for (int i = 0; i < la; i++) a[1000009 - la + i] = sa[i] - '0';
    for (int i = 0; i < lb; i++) b[1000009 - lb + i] = sb[i] - '0';
    int carry = 0; // 进位
    for (int i = 1000009; i >= 0; i--) {
        int sum = a[i] + b[i] + carry; // 加上进位
        re[i] = sum % 10; // 当前位
        carry = sum / 10; // 更新进位
    }
    for (int i = 0; i <= 1000009; i++) {
        if (re[i] != 0) { // 找到第一个非零的
            cout << re[i];
        }
    }
}

本蒟蒻蒟蒻知道初始化0不对,但是有没有大佬改一下哇。

求调

包关注

另外一个没解决的问题 rw
2024/8/16 11:14
加载中...