怎么用while语句算5的阶乘?

while和for语句我觉得有点难!怎么才能完全理解并利用呢?

给你计算“n”的阶乘的方法,为了节省代码,并未对输入的n的合法性做判断,我想你应该会吧?
#include <iostream.h>
int step(int n)
{ int i=1;
static int j=1;
while(i<=n)
{ j=i*j;
i++;
}
return j;
}
int main()
{ int n;
cin>>n;
cout<<step(n)<<endl;
return 0;
}

while和for,我初学时也觉得难,但现在不敢说掌握很好,但也能解决一般的问题了;我的做法是:多做题!比如,我做的第一个循环题是——打印以下图形:
*
***
*****
*******
*********
*******
*****
***
*
当然,这个图形即使不用循环也能做出来,但要写不少代码,而且效率低下,所以我建议你能自己使用循环的方法做出来。只要多做练习,我想一定能掌握的!

注:不知怎的,图形和我想象的不同,应该是:
第一行4个空格,1个* 第二行3个空格,3个* 第三行2个空格,5个* 第四行1个空格,7个* 第五行没有空格,9个* ……再倒回去……但在“回答”里打不出来,希望你明白我的意思。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-02-22
给你个初学者很容易就看懂的用while语句来做的阶乘算法:
#include<iostream>
using namespace std;

int main()
{
int number; //这个number是待输入算阶乘的值
int result = 1; //用来存结果
cout<<"输个数"<<endl;
cin>>number;
if (number == 0)
result = 1;
else if(number >= 1)
{
while(number!=0)
{
result *= number;
number--;
}
}
else
cout<<"输入了错误的数值"<<endl;
cout<<"结果为"<<result<<endl;
return 0;
}
第2个回答  2008-02-21
#include <iostream.h>

int main()

{
int ina,i=1,num=0;
cout<<"请输入一个整数:";

cin>>ina;
if (ina>0)
{
//**************************************************
/*for (i=1;i<=ina;i++)
{
num=i*5;

cout<<"现在是:"<<i<<"*5="<<num<<"\n";
}*/
//**************************************************

//**********************************************************

i=0; //do while 需要定义这里..不然是从2开始了
do
{
i+=1;
num=i*5;

cout<<"现在是: "<<i<<"*5="<<num<<"\n";

} while (i<ina);

//***********************************************************

}

return 0;
}
第3个回答  2008-02-22
#include "iostream.h"

void main()
{
int a = 6;
int b = 1;
int c = 1;
while(b != a)
{
c = b * c;
++b;
}
cout << c << endl;
}
第4个回答  2008-02-22
不用while不用for

int main()
{
cout<<fut(5);
}

int fut(int s)
{
if(s>1)
return s*fut(s-1);
return s;
}

C语言求5的阶乘???
int i=1,mul=1;printf("5!=");do { mul=mul*i;i++;}while(i<=5);printf("%d\\n",mul);return 0;} 算的是5的阶乘,所以,在我们的语句里,我们需要向计算机表达这一个要求,这里我们的阶乘的算法是:mul=mul*i。在我们的程序编写完成之后,我们点击“运行”,即可得到我们的5!的最终...

使用三种循环语句输出5的阶乘
} while(i=1)\/\/===以上num为5的阶乘===

怎么用while语句算5的阶乘?
第一行4个空格,1个* 第二行3个空格,3个* 第三行2个空格,5个* 第四行1个空格,7个* 第五行没有空格,9个* ……再倒回去……但在“回答”里打不出来,希望你明白我的意思。

求5的阶乘
5!=5*4*3*2*1=120。如果需要C语言中求5!,有多种算法可以实现,这里借鉴网友一种相对建议的方法:include<stdio.h> int main(){ int i=1,mul=1;printf("5!=");do { mul=mul*i;i++;}while(i<=5);printf("%d\\n",mul);return 0;} ...

求5的阶乘——在线等待,谢谢了!
include<stdio.h> main(){ int i,x;i=1;for(x=5;x<=1;x--) \/\/这一句错了,你的循环结束条件是 x<=1 那么第一次循环的时候 x=5,5<=1,循环就结束了,所以结果 i=1。只要把这个循环结束条件给为 x>=1 结果就正确了 i=i*x;printf("\\n%d",i);} ...

c++ 求5的阶乘 这个程序有问题 求指点
第一个:include<stdio.h> void main(){ int s=1,i=1;while(i<=5){ s=s*i;i++;} printf("5的阶乘等于= %d",s);} 第二个:include<iostream.h> long factorial(int n);void main(){ cout<<factorial(4)<<endl;} long factorial(int n){ long result=0;if(n==0)result=1...

:用while语句编程求5!的值,即求1×2×3×4×5的乘积.
int sum = 1;int i = 1;while(i<=5){ sum += sum * i; i++;}System.out.println("1-5阶乘:" + sum);

c语言从1乘到5while
从1乘到5while如下:long sum=0,n=1,x=1; \/\/long型,保证数据长度够用。int i=1;while(n<=5) \/\/控制1·~ 5 。{ i=1; while(i<n) \/\/求阶乘{ x*=i;}sum+=x; \/\/求和}\/\/sum为所求

5的阶乘 c语言
include <stdio.h>int main(){ int n=5; int jc=1; while(n>1) { jc *= n; n--; } printf("%d\\n", jc); return 0;}

编程序5 阶乘
include "stdio.h"void main(){ int n=1,s=1;while(n<=5){ s=s*n;n++;} printf("%d",s);}

相似回答