急求一简单C++习题

来源:百度知道 编辑:UC知道 时间:2024/06/22 02:14:19
从键盘输入一整数n,按y=1!+2!+…+n!求出y值,并输出n和y的值。用c++编,详细说明下各符号含义,答案要复制后能用,谢谢了。
请for语句编程

#include<iostream.h>
void main()
{
int n;
long y=0;
cout<<"请输入n的值:";
cin>>n;
long f=1;//f=n!
for(int i=1;i<=n;i++)
{
f=f*i;
cout<<i<<"!="<<f<<"\t";//输出n!
y=y+f;
}
cout<<endl<<y<<endl;//输出y的值
}

用上面的程序,算到13的阶乘就是错的了;
主要是表示上就有问题了!

#include <iostream>
using namespace std;
//------------------------------------------------------------------------------
int main()
{
double y=0,Temp=1;//Temp为临时存储变量,因为阶乘值很大,所以用double型
unsigned int n=0;//阶乘不能为负,所以用无符号整型
cout<<"请输入n值:(n>0)";
cin>>n;
for(int i=1;i<=n;i++)
{Temp*=i;cout<<Temp<<endl;y+=Temp;}//Temp*=i计算阶乘的值,y+=Temp计算阶乘的和;//cout<<Temp<<endl作为测试语句,可以输出n之前的所有阶乘答案(包括n),可以去掉;
cout<<n<<"的阶乘的和为:"<&