关于一个电脑C语言的程序设计问题?
来源:百度知道 编辑:UC知道 时间:2024/05/30 11:37:48
【例2.1】求1×2×3×4×5。
最原始方法:
步骤1:先求1×2,得到结果2。
步骤2:将步骤1得到的乘积2乘以3,得到结果6。
步骤3:将6再乘以4,得24。
步骤4:将24再乘以5,得120。
这样的算法虽然正确,但太繁。
改进的算法:
S1: 使t=1
S2: 使i=2
S3: 使t×i, 乘积仍然放在在变量t中,可表示为t×i→t
S4: 使i的值+1,即i+1→i
S5: 如果i≤5, 返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。
如果计算100!只需将S5:若i≤5改成i≤100即可。
什么意思?
我是菜鸟,我笨啊!还是看不懂!!!
最原始方法:
步骤1:先求1×2,得到结果2。
步骤2:将步骤1得到的乘积2乘以3,得到结果6。
步骤3:将6再乘以4,得24。
步骤4:将24再乘以5,得120。
这样的算法虽然正确,但太繁。
改进的算法:
S1: 使t=1
S2: 使i=2
S3: 使t×i, 乘积仍然放在在变量t中,可表示为t×i→t
S4: 使i的值+1,即i+1→i
S5: 如果i≤5, 返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。
如果计算100!只需将S5:若i≤5改成i≤100即可。
什么意思?
我是菜鸟,我笨啊!还是看不懂!!!
#include<iostream>
using namespace std;
int main()
{
int t=1//S1: 使t=1
int i=2//S2: 使i=2
for(i=2;i<=5;i++/*S4: 使i的值+1,即i+1→i*/)//S5: 如果i≤5, 返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。
{
t=t*i;//S3: 使t×i, 乘积仍然放在在变量t中,可表示为t×i→t
}
cout<<t;
return 0;
}
LZ 这总能懂了吧;
2中解决办法,第二个比较好。
第二种方法就是循环的方法嘛!
即 改进后的程序核心代码为
int t=1,i;
for(i=2;i<=5;i++)
t*=i;
。
就是说算法二更好编程