私はProjectEulerに取り組んでおり、次の学期に予定されているプログラミングの課題に備えて、C ++コーディングスキルを磨き上げています(Pythonを使用できないため、ブー!)。
私は#16にいます、そして私は2¹°°°のために本当の精度を保つ方法を見つけようとしています
例えば:
int main(){
double num = pow(2, 1000);
printf("%.0f", num):
return 0;
}
プリント
107150860718626732094842504906000181056140500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
(Pythonからの)ほとんどの数字が欠落しています:
>>> 2**1000
107150860718626732094842504906000181056140481170553360744375038837035105112493612249319837881569585812759467291755314682518714528569231404359845775746985748039345677748242309854210746050623711418779541821530464749835819412673987675591655439460770629145711964776865421676
確かに、Python1ライナーを使用してプログラムを作成できます
sum(int(_) for _ in str(2**1000))
それですぐに結果が得られますが、C++でそれを行う方法を見つけようとしています。ポインタはありますか?(はは...)
編集:
標準ライブラリの外にあるものは私には価値がありません-これらのコンテストではデッドツリーコードのみが許可されており、おそらく10,000行の外部コードを出力することはありません...