【发布时间】:2021-05-20 11:49:39
【问题描述】:
我在这种情况下面临溢出问题,输出为 7392445620511834112,我想将 b 和 c 的 2 个大值相乘并存储该值。
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
ll b=1000000000000000000;
ll c=2000000000000000000;
ll out=b*c;
cout<<out;
}
【问题讨论】:
-
1000000000000000000 乘以 2000000000000000000 大于 10^18。
-
其实2000000000000000000本身大于10^18。 “提供”是什么意思?
-
并且不要对常见的标准类型使用类型别名(或更糟糕的是,宏)。此类宏不会使您的代码更易于阅读或更快。事实上,大多数显示的代码都显示出在所谓的“竞争”网站上普遍传授的不良习惯的迹象。不要使用这些网站来学习任何东西,这不是他们的目的。获取some good books 并上课。这就是您学习 C++ 和一般编程的方式。