gpt4 book ai didi

c++ - 长长除错

转载 作者:行者123 更新时间:2023-11-30 01:16:43 25 4
gpt4 key购买 nike

我在做一个项目,某段时间遇到了这个问题。我有两个非常大的数字,我想将它们相除并得到一个整数/长整数。这是正在发生的事情:

代码

#include <iostream>
using namespace std;

int main(){
long long n,m;
cin >> n >> m;
cout << n/m << endl;
}

输入可以是 100,000,000,000,000,000 之前的数字,因此除法执行错误。

输出

#1 n: 76543210987654321 m: 7654321
#2 76543210987654321/7654321 = 1410312449

正确答案是 10,000,000,130 所以我想知道发生了什么...

最佳答案

正确的结果既不是1410312449也不是10000000130。它等于 10000000129

至少它是 GCC 在 www.ideone.com 上显示的内容。你可以自己试试。

#include <iostream>

int main()
{
long long n = 76543210987654321;
long long m = 7654321;

std::cout << n / m << std::endl;

return 0;
}

你好像把运算的结果放在了int类型的对象中。考虑以下代码

#include <iostream>

int main()
{
long long n = 76543210987654321;
long long m = 7654321;
int x;

x = n / m;

std::cout << n / m << std::endl;
std::cout << x << std::endl;

return 0;
}

输出是

10000000129
1410065537

关于c++ - 长长除错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25947695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com