如何显示数字之和除以它们的阶乘?

时间:2015-07-30 07:24:24

标签: c factorial

我是初学者,在做这个课程时我很难过 问题是:

(1/1!)+(2/2!)+(3/3!)+(4/4!)- - - -n

所以这里是n个项(其中一个数除以它的阶乘),我必须显示scanf函数中给出的任意数量项之和的输出。

我所知道的只有一件事是这个程序可以通过使用" Nested for"来完成。循环但我还没有完美的C语言抓地力。所以你们必须帮助我解决这个问题。 :)

#include <stdio.h>
#include <conio.h>

void main(void){
    int s,a,b,n,fact=1;
    //clrscr();
    printf("Enter number of terms=");
    scanf("%d",&n);
    for(a=1;a<=n;a++) {
        fact=fact*a;
        b=(a/fact);
        printf("Sum=%d",s);
    }
    getche();
}

P.S我必须使用&#34; Nested for&#34;循环。

2 个答案:

答案 0 :(得分:1)

不,您不需要任何嵌套for循环来解决您的问题。这是您可以遵循的程序:

function factorial
    Input: numbers L.
    Output: factorial of L.

function sum
    Input: n.
    Output: sum.

sum = 0;
for i = 1 to n, do
   sum ← sum + (i / factorial(i))
return sum 

答案 1 :(得分:0)

#include <stdio.h>

int main(void) {
    // your code goes here
    int n;
    float sum = 0,d,fact =1,j,i;
    printf("Enter the number:");
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        fact = 1;
        for (j = 1; j <= i; j++){
            fact = fact * j;
        }

        d =  (float) i / (float) fact ;

        sum = sum  + d;

    }

  printf("sum = %f", sum);
    return 0;
}

它的工作..你可以在这里查看: - https://ideone.com/JVXQVX