C言語による紙を半分に折る回数とその厚さのプログラムです。
Xcode上で、動作を確認しました。
紙の厚みと半分に折る回数を入力することで、その厚さ(mm、m)を求められます。
結果表示後に、もう一度計算し直す場合は継続し、そうでなければ終了します。
/* C言語による紙を半分に折る回数とその厚さ https://neguse-atama.hatenablog.com */ #include <stdio.h> int main(void){ double a,b,atusa1,atusa2; int tuzuki,kaisuu,L; do{ printf("紙の厚みと紙を半分に折る回数を入力してください。\n"); printf("紙の厚み:");scanf("%lf",&atusa1); printf("紙を半分に折る回数:"); scanf("%d",&kaisuu); a=b=2; for(L=1;L<kaisuu;L++){ b=a*b; } atusa2=atusa1*b; printf("紙の厚さは%lfmm(%lfm)です。\n",atusa2,atusa2/1000); printf("もう一度計算しますか?・・・(0)はい (1)いいえ:"); scanf("%d",&tuzuki); }while (tuzuki==0); }
もしも紙を半分に折り続けられたら、と言う発想から考えてみました。
例えば、厚さが0.1mmの紙を折り続けると・・・
20回折ることができれば、その厚さは100mを超える高さになるでしょう。
25回折ることができれば、富士山の高さ(3776m)程にもなります。
更にコピー用紙で言うと、その厚みは0.07mmとして、43回折れば月までの距離を超えるはずです。
ただし現実には、紙を折り続けるのには限界があります。
数学としては、紙を重ねていくときの厚さは、紙の厚み x 枚数で求まりますが、半分に折っていくときの厚さは累乗になります。
つまり「重ねる」のと「折る」のでは、回数が増えれば増えるほど、その結果の差が大きくなると言えます。
そう考えると、「折る」と言う当たり前のようなことでも、不思議な気持ちになるのです。ちなみに最近折り紙で制作してみた、斜方立方八面体です。