hyfm.net
当前位置:首页 >> C++求n个由1~n的阶乘的和,不知道哪里出了问题,最后算不出来累加的正确值? >>

C++求n个由1~n的阶乘的和,不知道哪里出了问题,最后算不出来累加的正确值?

#include<iostream>using namespace std;int main(){ int i,a=1,j=1,c,n; int Sn=0; cin>>n; for(i=0; i<n; i++) { c=n-i; { while(1) { if(j<=c) { a=a*j; j++; cout<<a<<endl; Sn=Sn+a; //换了位置 } else break; } a=1; } } cout<<Sn; return 0;}其实这程序可以简化

首先,是main,不是mail. 其次,本程序中是使用的是递归函数来实现n的阶乘,因为在具体的计算机上实现的时候,递归是由栈(一种数据的组织形式)来实现的,而栈的大小是受限于计算机的可用空间的.所以,在计算n的阶乘时,当n较大,在计算时可能会出现空间不足不能进行计算的情况,这种情况下,会返回result的值为0.提醒程序的使用者,本次计算结果不对,请检查程序或者输入数据. 最后,如果上面这段看不懂也没有关系,你可以输入一个足够大的数来测试一下,当result初值是否为0对程序有什么影响.只有你自己试了,才能真正的掌握它.

思路是对的!但是sunfac函数你犯错了.1.类似sunfac(n)=sunfac(i); //不能给函数赋值.只能给变量赋值.2.sunfac 函数思路是对的.求和的过程是不需要递归的.其实直接写就行.比如改成这个样子.int sunfac(int n) {/*不要了 int i; i=0; sunfac(

#include using namespace std; int main() { int n,i,j=1; cout cin>>n; for(i=1;i j*=i; cout return 0; }

C++求n的阶乘代码如下复:#include<iostream> using namespace std; int fac(int); int main() { int n; while(cin>>n) { cout<<n<<"!= "<<fac(n)<<endl; } return 0; } int fac(int x) { register int i,f=1; //定义寄存器变量 for(i=1;i<=x;i++) f*=i; return f; } 扩

从1的阶乘加到N的阶乘和求解如下,下述代码只包含函数体,并未定义主函数,希望自行修改int fun(int n) //n 为条件中的N{int sum = 0,m = 1;;for(int i = 1; i 作业帮用户 2016-11-17 举报

上万的阶乘好像不可能吧!最长的long double类型 也容纳不了上万的数的阶乘.会超范围的.不知道能不能自己创建一种新的数据类型,让它能够容纳那么大的数. //****************************************#include<iostream>#include<cfloat> //for

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

#include void main() { int n,i,k=1,sum=0; scanf("%d",&n); for(i=1;i { k*=i; sum+=k; } printf("%d\n",sum); }

#include<iostream> using namespace std; int fac(int n) { int f; if(n==1||n==0) f=1; else f=n*fac(n-1); return f; } int main() { int n,s=0; scanf("%d",&n);//输入改成这样 双引号打错了 for(int i=1;i<=n;i++) s=s+fac(i); cout<<s<<endl; }

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.hyfm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com