前提・実現したいこと
長文失礼します。
標準入力から与えられた正整数 n ( 0<n<9900 ) に対して、 1/(5^n) の小数表示を標準出力に書き出すプログラムを作っています。 1/(5^n) は有限小数になります。 その有限小数を十進表現で左詰にで1行にして標準出力に書き出したいと思っています。
しかし、実行すると想定している値とは違う値が出ます。
以下の求めたい出力結果にするにはどう訂正すればよいでしょうか?
発生している問題・実行結果
標準入力:1 標準出力:0.200000 標準入力:2 標準出力:0.040000 標準入力:5 標準出力:0.000320 標準入力:10 標準出力:0.000000 標準入力:16 標準出力:0.000000 標準入力:100 標準出力:0.000000 標準入力:4096 標準出力:0.000000
該当のソースコード
c
1#include <stdio.h> 2#include <float.h> 3 4int main(int argc, char *argv[]){ 5 int n, i; 6 unsigned long long int x = 1; 7 8 scanf("%d", &n); 9 10 double ans; 11 12 for(i=1; i<=n; i++){ 13 x*=5; 14 } 15 16 ans = (double)1 / x; 17 18 printf("%lf\n", ans); 19 20 return 0; 21}
求めたい出力結果
標準入力:1 標準出力:0.2 標準入力:2 標準出力:0.04 標準入力:5 標準出力:0.00032 標準入力:10 標準出力:0.0000001024 標準入力:16 標準出力:0.0000000000065536 標準入力:100 標準出力:0.0000000000000000000000000000000000000000000000000000000000000000000001267650600228229401496703205376 標準入力:4096 標準出力:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001044388881413152506691752710716624382579964249047383780384233483283953907971557456848826811934997558340890106714439262837987573438185793607263236087851365277945956976543709998340361590134383718314428070011855946226376318839397712745672334684344586617496807908705803704071284048740118609114467977783598029006686938976881787785946905630190260940599579453432823469303026696443059025015972399867714215541693835559885291486318237914434496734087811872639496475100189041349008417061675093668333850551032972088269550769983616369411933015213796825837188091833656751221318492846368125550225998300412344784862595674492194617023806505913245610825731835380087608622102834270197698202313169017678006675195485079921636419370285375124784014907159135459982790513399611551794271106831134090584272884279791554849782954323534517065223269061394905987693002122963395687782878948440616007412945674919823050571642377154816321380631045902916136926708342856440730447899971901781465763473223850267253059899795996090799469201774624817718449867455659250178329070473119433165550807568221846571746373296884912819520317457002440926616910874148385078411929804522981857338977648103126085903001302413467189726673216491511131602920781738033436090243804708340403154190336
補足情報
試したこととして、標準出力の時に%lfではなく、%gに変更するとすべての小数を表示できると書いてあったので試しましたが駄目でした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/28 09:56 編集
2019/05/28 09:57
2019/05/28 09:58
2019/05/28 10:33
2019/05/28 22:59