cou*_*ndl 0 c++ math integer-overflow
如何在C++中计算2^100的十位值?
我尝试过这个;
#include <cmath>
#include <iostream>
using namespace std;
int main(){
int answer;
answer = (unsigned long long int)pow(2, 100) % 100 / 10; //zero
cout << answer << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但由于溢出而打印出0。
Python 使用此代码正确打印答案;
print(2 ** 100 % 100 // 10)
Run Code Online (Sandbox Code Playgroud)
但是我如何在C++中计算它呢?
只需两步即可完成:
int x = (1<<25)%100;
x = (x*x*x*x)%100;
x = x/10;
Run Code Online (Sandbox Code Playgroud)