C言語(プログラミング)の問題です。

次の実行例に示すように、正の整数n をキー入力させて、1/1! + 1/2! + 1/3! … 1/n!
の計算式と計算結果を表示するプログラムを作成しなさい.

<実行例>
正の整数を入力してください:5
1/1! + 1/2! + 1/3! + 1/4! + 1/5! = 1.716667

※関数を使わないでfor文の多重ループを用いて解いてほしいです。

補足
   追記:
   ①プログラムだけではなく考え方も教えてほしいです。
   ②また、出力変換は%dと%fのみの使用にしてほしいです。

   よろしくお願いします。 


  • 多重ループが不要

実行例
入力: 1
解: 1.000000

入力: 0
解: 1.000000

入力: 5
解: 1.716667

入力: 300000000
解: 1.718282

ネイピア数 - 1 (=1.71828...)に近づく

解答例
#include <stdio.h>
 
int main(void) {
    int n, i, k;
    double sum = 1.0, ifac = 1.0;
 
    printf("入力: ");  scanf("%d", &n);
    for (i = 2; i <= n; i++) {
	ifac *= 1.0 / i;
        sum += 1.0 * ifac;
    }
    printf("解: %f\n", sum);
 
    return 0;
}
 

-

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2014年05月08日 04:07