次のように数値をループする次のコードがあるとします。
int p;
cin>>p;
for(unsigned long long int i=3*pow(10,p);i<6*pow(10,p);i++){
//some code goes here
}
ここで、特定の条件チェックに基づいてi
、範囲の間にa を出力する必要があります。3*pow(10,p)<= i <6*pow(10,p)
コードは正常に動作しますupto p=8
が、その後かなり遅くなり、コンパイラが行き詰まるようですp=9,10,11
。問題は正しいデータ型を使用することにあると思います。ここで使用する正しいデータ型は何ですか?
このループの目的は、範囲内の適切な数値を見つけることです。適切な数字の条件は次のとおりです。1) 数字として 3、5、またはその両方。他の数字は使用できません。2) 3 の出現回数は 5 で割り切れる。 3) 5 の出現回数は 3 で割り切れる。
注:unsigned long long int
ここで使用しました(0 to 18,446,744,073,709,551,615)
。私は32 ビット マシンで実行しています。