xbns.net
当前位置:首页 >> 输入n计算1到n的阶乘 >>

输入n计算1到n的阶乘

最基础的思路,是逐个求阶乘,并累加.不过由于阶乘是从1乘到n,所以每个数都单独求一次阶乘,会有很多重复运算,影响效率.所以更快捷的方式是,在上一个数的阶乘基础上,直接乘上本身,得到当前数的阶乘.以此为主导,代码如下:#include <stdio.h> int main() { int n, i, n1 = 1,s=0; scanf("%d",&n);//输入n值. for(i=1; i <= n; i ++) { n1*=i;//计算i的阶乘. s+=n1;//累加. } printf("%d\n", s);//输出结果.}

#include<iostream> using namespace std; long fact(int n) { int tmp=1; for(int i=1;i<=n;i++) tmp*=i; return tmp; } int main() { int n; long sum=0; cout<<"请输入n的值:"; cin>>n; for(int i=1;i<=n;i++) sum+=fact(i); cout<<sum<<endl; return 0; }

您好,我们下构思下程序的基础,1. 让用户自定义输入一个数作为阶乘数,2. 当超过20时,输出“N is too big”.我们需要用到IF函数,以下为详细过程.#include using namespace std; int main() { int n, s=1; cin >> n; for (int i = 1; i { s = s * i; } if (n > 20) cout else cout return 0; }

#include <stdio.h> void main() {int n,i,s=1; scanf("%d",&n); for(i=1;i<=n;i++) s=s*i; printf("%d\n",s); }

参考代码如下:#include<stdio.h> int main() { long f=1; int i,n; scanf("%d",&n); for(i=1;i<=n;++i){ f=f*i; printf("%d!=%ld\n",i,f); } return 0; }

long int fact(int n) { int x; long int y; if(n { printf("error!"); } if(n==0) return 1; x=n-1; y=fact(x); return (n*y); } 这是c的,c++差不多,用递归就能实现

思路:所谓n的阶乘就是从1到n的累积,所以可以通过一个for循环,从1到n依次求积即可.参考代码:1234567891011121314 #include "stdio.h" intmain() { intn,i,s=1; scanf("%d",&n); for(i=1;i<=n;i++)//for循环求累积 s=s*i; printf("%d\n",s); return0;}/*运行结果:(例如求5的阶乘) 5120*/

int n,m=1,i; scanf(“%d”,&n); for(i=0,i m=n*m;

从1的阶乘加到n的阶乘和求解如下,下述代码只包含函数体,并未定义主函数,希望自行修改 int fun(int n) //n 为条件中的n { int sum = 0,m = 1;; for(int i = 1; i { m *= i; // 实现阶乘操作,可以计算出 i 的阶乘 sum += m; // 实现 i 的阶乘的加和 } return sum; }

#include<stdio.h> main() { int i,n, k = 1; /*另设一个值来保存阶乘吧,i要用来循环*/ scanf("%d",&n); for(i=1;i<=n;i++) /*这里的分号去掉,不然下面一句没法循环= =*/k *= i; printf("%d",k); getch(); } 望采纳

ceqiong.net | xaairways.com | lpfk.net | mwfd.net | wkbx.net | 网站首页 | 网站地图
All rights reserved Powered by www.xbns.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com