用 for 循环语句实现编写一个求n 阶乘的函数文件

作者&投稿:嵇左 (若有异议请与网页底部的电邮联系)
急求:编写一个matlab文件,求1到n的阶乘之和。要求:输入一个数n,调用,返回1!+……+n!~


以下是使用 for 循环语句编写 n 的阶乘的 C 语言代码实现:

```c
#include

int main() {
int n, factorial = 1;
printf("请输入一个整数:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
factorial *= i;
}
printf("%d 的阶乘为:%d
", n, factorial);
return 0;
}
```

代码解释:

1. 在 `main` 函数中定义变量 `n` 和 `factorial`,分别表示用户输入的数和阶乘结果。
2. 通过 `printf` 和 `scanf` 函数获取用户输入的整数。
3. 循环计算 1 至 `n` 之间的数的乘积,即为 `factorial` 的值。
4. 所有数的乘积计算完之后,输出 `factorial` 即可。

运行结果:

```
请输入一个整数:5
5 的阶乘为:120
```

可以看到,这段 C 语言代码输出了 5 的阶乘,结果为 120。

1、启动VB6.0,新建一个标准exe工程,如下图所示:

2、在窗体上绘制一个命令按钮,名称为Command1,如下图所示:

3、双击命令按钮进入代码窗口,如下图所示:

4、编写命令按钮单击事件过程。(第一种方法相对简单,就不过多解释。第二种方法,用到的是函数递归方法,在没有结束程序之前继续调用函数,相信读者会发现,n逐渐减一,所以每次乘进去都是前一个数减一,如下图所示:

5、按F5运行测试,如下图所示:



#include<stdio.h>
int fac(int n)
{int f=1;
 for(;n;)f*=n--;
 return f;
}
int main()
{int n;
 for(n=1;fac (n)<=10100;n++);
 printf("%d!=%d
",n,fac(n));  
 return 0; 
}



int fun(int maxsum)
{
    sum=1;
    int i=
    for(int i=1;;i++)
    {
        sum=sum*i;
        if(sum>maxsum)
            return i;
    }
    
}


long int fun(int n)
{
long int temp;
int i;
for(i=1;i<=n;i++)
{
temp*=i;
}
return(temp);
}
main()
{
longint n=1;
while(fun(n)<10100)
{
n++;
}
printf("%ld",n);
return 0;
}


/*实现这个程序,我用的是C语言很简单的程序,我们把n初始值赋值1,然后n每次加1,直到sum大于10100时,返回当前的n值*/
#include <stdio.h>
int NtoOne(int n)
{
int sum=1;
for(long i=n;;i++)
{
sum*=i;
if(sum>10100)//当sum大于10100时返回当前的i.
return i;
}
}
main()
{
int n;
n=1;//n从1开始
n=NtoOne(n);//函数n!
printf("%d",n);
getchar();
}


上杭县13741584927: java编写,求用for循环写 -
骆豪易路: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28importjava.util.Scanner;publicclassGuessTheNum {publicstaticvoidmain(String[] args) {inttheNum = (int) (Math.random() * 100);intcount = 0;Scanner input = ...

上杭县13741584927: 用c语言中的for循环编一个求1到100内所有素数个数以及和的程序,但不要出现break,求助. -
骆豪易路: int i, j = 2, n = 0, a[100] = {0}, sum = 0; for (i = 2; i < 101; i++) { while (i % j != 0 && j <= i) { j++; } if (j == i) { a[n] = i; printf("%d ", a[n]); sum += a[n]; n++; j = 2; } } printf("\n个数:%d 和:%d", n+1, sum);

上杭县13741584927: c语言编程求1到n中能被3或7整除的数之和.分别用for循环语句和while循环语句完成本题. -
骆豪易路:[答案] #include /*用for循环实现*/ void main() { \x09int n; \x09int m; \x09printf("please input n\n"); \x09scanf("%d",&n); \x09for(int i = 1; i

上杭县13741584927: 输入一个整数,求1到此数的和与平均值 利用for循环语句 -
骆豪易路: #include int main() {int i=0,j;int sum=0;scanf("%d",&j);for(i=1;i {sum+=i;}printf("Sum= %d ,Ave=%f",sum,(float)(sum/j));getch();return 0; }

上杭县13741584927: 采用穷举法,使用for语句编写一程序求两个整数的最大公约数和最小公倍数 -
骆豪易路: 展开全部#include main(){ int a,b,n,m; printf("input two number.\n"); scanf("%d %d",&a,&b); for(n=(a+b)/2;n>0;n--){ if((a%n==0)&&(b%n==0)) break; } m=a*b/n; printf("%d\n%d\n",n,m); } 运行的时候从键盘输入两个整数,输出的数第一个是最大公约数,第二个数是 最小公倍数.考虑到最大公约数与最小公倍数之积等于原来两数之积,可以简化计算.

上杭县13741584927: 编写程序,使用for循环实现如下功能:用户输入一个整数n,若n为奇数,程序计算出数列1 + 3 + 5 + … + n的 -
骆豪易路:[答案] #include void main() { int n ; printf("请输入一个正整数:"); scanf("%d",&n); int sum =0; if (n%2==1) { for(int i=1;i

上杭县13741584927: 1编程求1到n中能被3或7整除的数之和.分别用for循环语句和while循环语句完成本题. -
骆豪易路:[答案] for(x=n;x>=3;x--)'判断的最小值为3,小于3的值就没有意义 { if(!(x mod 3) or !(x mod 7))'被3除无余数或被7除无余数 count+=x; } x=n; while(x-->=4)'因为是先判断后自减程序中的值比判断值小1.判断是4程序中是3 { if(!(x mod 3) or !(x mod 7)) count+=x; }

上杭县13741584927: 谁可以帮我编一段程序:使用FOR循环语句求1到100的累加和. -
骆豪易路: 很简单的,如下: main() { int sum=0; for (int i=1;i<=100;i++) {sum+=i;} printf("%d",sum); }

上杭县13741584927: c语言求用for循环写一个简单的代码 让屏幕显示下面的图形 * *** * -
骆豪易路: #include void main(){int i,j; clrscr(); /* 清屏 */ for(i=1;i<=9;i++) /* 行循环 */ {for(j=1;j...

上杭县13741584927: 利用FOR循环嵌套语句,求1!+2!+...+10! -
骆豪易路: using System; class Sum {static void Main(){int i,k,m=1,s=0;for(i=1;i<11;i++){for(k=1;k<=i;k++)m*=k;s+=m;m=1;}Console.WriteLine(s);} }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网