C语言入门算法

来源:百度知道 编辑:UC知道 时间:2024/09/24 22:29:35
刚学不到1天的C。。
实在头痛。。
有一个例是这样的。
1×2×3×4×5=120
他是这样讲解的。。
上述算法太繁琐,我们找一种通用的表示方法。
S1:设变量p,被乘数,p=1;
s2:设变量i,代表乘数,i=2;
s3:使p×i,乘积放在被乘数变量p中,可表示为:p×i p;
s4:使i的值加1,即i+1 i;
s5:如果i不大于5,返回重新执行步骤s3以及其后的s4、s5;否则,算法结束。最后得到的p就是5!的值。
他说的这是什么鬼啊。。。
怎么算的。。没搞懂
p×i p;
这空的地主是一个箭头一样的标志。。因为是在world复制下来的。所以没看见
下面的也是一样。

这是对的,首先P=1,I=2,然后P乘以I,将乘积结果放在P中,这时候P的值变了,即新的P成为了P乘以I的值,即P=1x2=2,然后让I的数值加1,此时I=2+1=3了,然后让新的P的数值即P=2乘以新的I的值,再把这个新的值赋予P,即新的P等于原来的P=2乘以了新的I=3,所以P=2x3=6了,即算出了P=1x2x3的结果,以此类推,让I逐渐加1,直到I=5,就可以算出P=1x2x3x4x5的数值了。那个箭头是赋予数值的意思,即把PXI的值赋予P,还有不懂得再联系~~

说的就是在c程序里计算阶乘的方法,非递归的

#include <stdio.h>

int main(void)
{
int n = 5;
int p = 1;
int i = 2;

while (i <= n)
{
p = p * i;
i++;
}

printf("1*2*3*4*5=%d", p);
}

这就是这段话的意思在c程序的实现

关键在于第三步,用C语言描述的话应该是p=p*i,即将p*i的结果再存到p中
其中i由2到5循环4次:
第一次循环:i=2,p=1*2;
第二次循环:i=3,p=p*i即为(1*2)*3
第三次循环:i=4,p=p*i即为(1*2*3)*4
第四次循环:i=5,p=p*i即为(1*2*3*4)*5
即每一次循环都更新一次p的值,然后在下一次循环的时候将p与新的数相乘,以达到求阶乘的目的