C++具有较大值的偶数和奇数检查

C++ even and odd number checking with bigger values

本文关键字:检查 C++      更新时间:2023-10-16

通过使用这一小段代码,我找到了偶数和奇数,但是当我输入数字8888888888(10次)时,我的好奇心越来越大,它给了我奇数答案,同时我再次输入数字88888888(9次),它给了我偶数。任何对此有想法的人。

这是代码:

#include<iostream>
using namespace std;
int main(){
    int a;
    cin>>a;
    if(a%2==0){
        cout<<"even";
    }else{
        cout<<"odd";
    }
}

我在开发C++编译器上检查此代码。谢谢

内置数值类型可以表示的值范围有限。 8888888888超出了您平台上的int范围。请参阅标准::numeric_limits。

对于大数字,请使用 long 关键字而不是 int:即 long a; .

正如其他人所说,标准的内置类型对于您要做的事情来说还不够大。

我建议你做的是构建一个可以存储大数字的类。最简单的方法(如果您并不真正关心内存使用情况)是将大数字存储为数组中的单独数字。

如果您只想知道数字是偶数还是奇数,那就更容易了:如果您的输入是字符串,您可以拆分最后一个字符并将其更改为整数。这个整数说明了整数是偶数还是奇数。

我希望这有所帮助。

问候, 伤害

在C++的情况下n1 和 n2 是字符串

 if((n1[n1.size()-1] * n2[n2.size()-1]) % 2 == 0){
    return 1;
}
else{
    return 0;
}