gpt4 book ai didi

c++ - 由于使用科学记数法而出错

转载 作者:行者123 更新时间:2023-11-28 04:15:13 25 4
gpt4 key购买 nike

我尝试了 Hackerearth 教程 question并能够使用以下代码正确解决它:

    #include <iostream>
using namespace std;
int main() {
const long int MOD = 1000000007;
const long int SIZE = 100001;
long int t, n;
long int cache[SIZE];

cache[0] = 1;

for (long int i = 1; i < SIZE; i++) {
cache[i] = ( i * cache[i-1] ) % MOD;
}

cin >> t;
while (t--) {
cin >> n;
cout << cache[n] << endl;
}

return 0;
}

但是用科学记数法写MOD或SIZE时,在线判断会报错。我在这里缺少什么?

    #include <iostream>
using namespace std;
int main() {
const long int MOD = 10e9+7;
const long int SIZE = 100001;
long int t, n;
long int cache[SIZE];

cache[0] = 1;

for (long int i = 1; i < SIZE; i++) {
cache[i] = ( i * cache[i-1] ) % MOD;
}

cin >> t;
while (t--) {
cin >> n;
cout << cache[n] << endl;
}

return 0;
}

最佳答案

科学计数法表示“常数乘以 10 的 x 次方”。如果您想要 1000000007,则需要 1e9,意思是“一个后跟九个零”。现在您使用 10e9,它是“十后跟九个零”或“一个后跟十个零”,所以您偏离了十分之一。

关于c++ - 由于使用科学记数法而出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56815355/

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