注册 登录
编程论坛 C++教室

求任意一个数的阶乘,怎么写?

捉迷藏 发布于 2012-03-04 20:09, 12466 次点击
我是初学者这是我写的,但错误。whlie(i)这里是不是错的?随便帮我改改!我想好久,
明天就上交了。
#include<iostream.h>
void main()
{
    int i=1,y=1;
    cout<<"请输任意一个数i"<<endl;
    cout<<"输入i=";cin>>i;
    while(i)
    {
        y*=i;
        i++;
    }
    cout<<"y="<<y<<endl;
}
14 回复
#2
yuccn2012-03-05 11:28
死循环了,不考虑大数的情况下:
while(i)
{
    y*=i;
    i--;
}
#3
BianChengNan2012-03-05 11:44
楼主这写法不对吧。。。
#4
kxdbdq2012-03-05 14:05
这是我写的阶乘程序并成功编译运行,看看怎么样。


#include<iostream.h>
int main(void)
{
    int i,a;
    long s;
    char c='a';
    for(;c!='q';)
    {
    s=1;
    cout<<"输入一个数,我将计算它的阶乘。"<<endl;
    cin>>i;
    for(a=1;a<=i;a++)
    s*=a;
    cout<<"这是结果:"<<s<<endl;
    cout<<"需要继续吗?按任意键继续,q退出。"<<endl;
    cin>>c;
}
return 0;
}
#5
庄飞2012-03-05 20:29
程序代码:
[local]1[/local]
#include <iostream>
  using namespace std;
  int main()
  {
     int i,j,k;
     i=1;j=2;
     cout<<"请输入任意一个数:"<<endl;
     cin>>k;
     for(j=2;j<=k;j++)
     {
        i=i*j;
     }
    cout<<i<<endl;
    return 0;

 

 

 

 
  

  }
#6
zhengyuhong2012-03-05 22:21
回复 楼主 捉迷藏
或者使用递归,学了吗?
#7
cheng5799342012-03-05 23:03
#include <iostream>
using namespace std;
void main()
{    int i=1,j,k;
    cout<<"请输入任意一个整数:"<<endl;
    cin>>k;
    for(j=1;j<=k;j++)
    {
        i=i*j;
    }
    cout<<i<<endl;
}
#8
李亚宽2012-03-06 13:54
按你的写的
我也是初学者以后多多交流指教
#include<iostream.h>
void main()
{
    int i=1,y=1;
    cout<<"请输任意一个数i"<<endl;
    cout<<"输入i=";
    cin>>i;
    while(i>0)
    {
        y*=i;
        i--;
    }
    cout<<"y="<<y<<endl;
}
只有本站会员才能查看附件,请 登录
#9
非死亡!2012-03-06 22:44
2b青年的写法  高手勿喷
程序代码:
// Note:Your choice is C++ IDE
#include <iostream>
using namespace std;
static int pi = 1;
static int sum = 0;
int main()
{  
    cout<<"Input the number!"<<endl;
    int lengthi;
    cin>>lengthi;
    for(int i = 1;i <= lengthi;++i)
    {
      
        pi *= i;
        sum += pi;
        cout<<"the sum "<<lengthi<<"jie cheng shi:"<<sum<<endl;
    }
    return 0;
}
#10
pangding2012-03-06 23:21
回复 9楼 非死亡!
你这个求的是阶乘吗?咋还加起来了?
#11
非死亡!2012-03-07 17:41
版主大人西路    我错了  该还不行吗?
#12
或许存在2012-03-07 22:33
递归求阶乘
#include "stdafx.h"
#include<iostream>
using namespace std;
int recursion(const int a);

int _tmain(int argc, _TCHAR* argv[])
{
    int num,result;
    cout<<"输入要计算阶乘的自然数(0~350):"<<endl;
    cin>>num;
    if(num<0)
        cout<<"警告,请输入正数!"<<endl;
    else
        result=recursion(num);
    cout<<num<<"的阶乘为"<<result<<endl;
    return 0;
}
int recursion(const int a)
{
    int a_r;
        if(a==0)
        a_r=1;
    else
        a_r=a*recursion(a-1);
    return a_r;
}
#13
孙冰2012-03-27 08:51
AAAAAAA、好难啊、
#14
徐宗保2012-03-27 11:14
#include<iostream.h>
void main()
{
    int i,x,y=1;
    cout<<"请输任意一个数i"<<endl;
    cout<<"输入i=";cin>>i;
    for(x=i;x>0;x--)
        y*=x;
    cout<<"y="<<y<<endl;
}
#15
娄文康2012-03-29 15:00
回复 10楼 pangding
是阶乘啊,不过不能输入多个数据,最好不要用static变量
1