予備知識:
階乗は、
n! = 1×2×3×・・・×n-1×n
と表せられる。ただし、0!=1です。
お題:
階乗を計算するプログラム
①はじめに、n!の整数nを入力させる
②n!の計算式と、計算結果を表示させる
プログラム実行例
整数nを入力してください。 n=5 5! = 1×2×3×4×5 = 120 |
必須事項
・while文を使うこと
・n=0にも対応する
解答は8月20日に掲載します。それまでにプログラムを作成し、
・プログラム文
・その実行ファイル
をメールに添付して以下のアドレスに送ってください。
解答、質問はこちらまで
cosmo-cleaner@za.pial.jp
---------------------------------------------------------------
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> int main () { puts("整数nを入力してください。"); while ( n >= i ) { |
実行例は次の通りです。
整数nを入力してください。 |
解説
n=0の場合は1が答えですが、このプログラムではn=0の時while文を通らず、12行目のprintfにて、初期値のa=1が表示されます。
int型は10桁までしか保存できないので、n=33が限界です。n=34以上になると、n!が10桁を超えてしまいます。※
int型は10桁までしか保存できないので、n=12が限界です。n=13以上になると、n!が10桁を超えてしまい、誤った値が出ます。
9行目の
a=a*i;
は、左辺のaが新しいaで、右辺のaは古いaです。while文のような繰り返す命令ではよくつかわれます。新しい変数にドンドン古い変数を入れていく感覚です。
答えられる範囲で質問いつでも受け付けます。
cosmo-cleaner@za.pial.jp
※2009.9.4 訂正