感謝您檢查此問題。 所以我不知道如何我可以得到輸出2^64,如果我輸入是2^64。 在無符號長長整型,它只是只能達到2^64-1 == 18446744073709551615 問題是,當輸入號碼== 18446744073709551616 的輸出將是「2^64」 但代碼,我必須是:我想得到輸出2^64沒有任何擴展在C + +
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
unsigned long long int a;
cin >> a;
if (a == pow(2,64))
{
cout << "2^64";
}
}
所以問題是,如果我輸入:18446744073709551616 它將不會輸出。我怎樣才能使輸出「2^64」?
要得到2^n使用'1 << n'(或者如果n很大,則使用'1ULL << n') 。但64位整數類型無法表示2^64。唯一的解決方案是使用更大的類型 –