在c中打印N个第一阶乘数的程序

时间:2014-03-01 06:36:21

标签: c loops for-loop factorial

阶乘数是一个乘以之前数字的数字。例如,它是5. 1 * 2 * 3 * 4 * 5是它的阶乘数。 我已经制作了一个打印任意数量的阶乘的程序,但我不知道如何在c中打印N个第一阶乘数。 例如,我输入10.它必须显示前10个数字及其阶乘(制作表格) 以下是我打印任何数字的阶乘因子。是否有可能使用while / if else语句/和for循环?

#include <stdio.h>
int main()
{
    int i, n, fakt = 1;
    printf("Enter a number:\n");
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
         fakt = fakt*i;
    printf("Factorial of %d js %d\n", n, fakt);
    getch();
}

7 个答案:

答案 0 :(得分:3)

你可能想要这个:

<强>程序:

#include <stdio.h>
int main()
{
    int i, n, fakt = 1;
    printf("Enter a number:\n");
    scanf("%d", &n);
    for (i=1;i<= n;i++) //use braces to write more than one statement inside the loop
    {
         fakt=fakt*i;
         printf("Factorial of %d is %d\n", i, fakt);
    }
    getch();
}

<强>输出:

Enter a number:
5
Factorial of 1 is 1
Factorial of 2 is 2
Factorial of 3 is 6
Factorial of 4 is 24
Factorial of 5 is 120

答案 1 :(得分:1)

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

void main()
{
    int f=1,i,v;

    clrscr();
    printf("Enter the number :");
    scanf("%d",&v);
        for(i=1;i<=v;i++)
        {
            f=f*i;
            printf("num =%d and fac=%d\n",i,f);
        }
    getch();
}

此代码将起作用

答案 2 :(得分:0)

该代码已使用for循环。 while循环等效项为:

i = 1;
while (i <= n) {
    fakt = fakt*i;
    i++;
}

答案 3 :(得分:0)

你可以做一个嵌套循环。

将父循环从1运行到n, 嵌套循环将是你已经在循环的工作。

你可能想要这个:

    #include <stdio.h>

    int main()
    {
            int n, i, num, factorial;
            printf("Enter the number of terms: ");
            scanf("%d", &n);

            for(i = 1; i <= n; i++)
            {
                    num = i;
                    factorial = 1;
                    while(num)
                            factorial *= num--;
                    printf("%d \t %d\n", i, factorial);
            }
            return 0;
    }

输出:

    Enter the number of terms: 10
    1    1
    2    2
    3    6
    4    24
    5    120
    6    720
    7    5040
    8    40320
    9    362880
    10   3628800

答案 4 :(得分:0)

#include <stdio.h>
int factorial(int n)
{
    int i,fakt = 1;
    printf("Enter a number:\n");
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
       fakt = fakt*i;
    return fakt;
}

int main()
{
   int n;
   printf("Enter a number:\n");
   scanf("%d", &n);
   int i = 0;
   for(i=1;i<=n;i++)
   {
       printf("Factorial for %d is %d\n",i,factorial(i));
   }
   return 0;
}

我认为这样做会很好。

答案 5 :(得分:0)

使用带有if ..else语句

的递归使用这个最快版本的factorial
#include<stdio.h>
int fact(int n);
void main()
{
    int n;
    printf("\nEnter an integer:");
    scanf("%d",&n);
    fact(n);
}
int fact(int n)
{
    int a;
    if(n==0)
    {
            printf("The Factorial of 0 is 1\n");                                                                                                   
            return 1;
    }
    else
    {
            a=n*fact(n-1);
            printf("The Factorial of %d is %d\n",n,a);
            return a;
    }
}

答案 6 :(得分:-1)

    #include<stdio.h>
    int main(int n){
    int fact;
    clrscr();
    printf("Enter a number and type exit:\n");
    scanf("%d",&n);
    if(n!=0){
    fact=n*main(n-1);
    printf("Factorial of %d is %d\n",n,fact);
    getch();
    return fact;
    }
    else{
    printf("Factorial of 0 is 1.\n");
    getch();
    return 1;
    }
    }