关于《深入浅出》中的一段代码
  • 板块学术版
  • 楼主AlanRosston
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/3/30 22:36
  • 上次更新2024/3/31 09:25:14
查看原帖
关于《深入浅出》中的一段代码
1274445
AlanRosston楼主2024/3/30 22:36

本蒟蒻目前正在学习《深入浅出》,最近看到高精度这一章,其中有一段代码(原题P1601)关于高精度加法如下:

#include <iostream>
#incluide <string>
#include <algorithm>

#define maxn 520;

using namespace std;

int a[maxn], b[maxn], c[maxn];

int main(void)
{
  string A, B;
  cin >> A >> B;
  int len = max(A.length(), B.length());
  
  for(int i = A.length() - 1, j = 1; i >= 0; i--, j++) {
    a[j] = A[i] - '0';
  }
  for(int i = B.length() - 1, j = 1; i >= 0; i--, j++) {
    b[j] = B[i] - '0';
  }
  
  for(int i = 1; i <= len; i++) {
    c[i] += a[i] + b[i]; // 此处直接对c[i]进行增加的操作
    c[i + 1] = c[i] / 10;
    c[i] %= 10;
  }
  
  if(c[len+1]) len++;
  for(int i = len; i >= 1; i--) 
    cout << c[i];
  
  return 0;
}

为什么代码中的数组c没有初始化却可以直接进行增加的操作呢QWQ(虽然只有c[1])运行的时候这段代码也没用报错也......

2024/3/30 22:36
加载中...