设计一个算法,求出满足条件1×3×5×…×n>50000的最小正整数n,并画出相应的程序框图

正解是:第一步,S=1i=3第二步,如果S≤50000,执行S=S×Ii=i+2否则执行第三步第三步,i=i-2第四部,输出i我主要是不理解第三步,为什么i还要减去2呢!... 正解是:第一步,S=1 i=3
第二步,如果S≤50000,执行S=S×I i=i+2 否则执行第三步
第三步,i=i-2
第四部,输出i

我主要是不理解第三步,为什么i还要减去2呢!!这步表示什么呀 什么意义呢!!
展开
百度网友d83e33e
2012-03-12 · TA获得超过1170个赞
知道小有建树答主
回答量:164
采纳率:100%
帮助的人:180万
展开全部
原因是你的 i 每次都执行了 i++ 操作。举例: 求出满足条件1×3×5×…×n>10的最小正整数n
我们知道答案应该是5。按正解
S = 1; i = 3;
if(S<=10){
S = S * i; // 当i=3时,执行: S = 1*3 =3; i=i+2; 此时i=5;
i = i + 2; // 当i=5时,执行: S = 3*5 =15;此时已经不满足条件,
但仍会执行 i=i+2;使得i=7;
}
else{
i = i - 2; //因此推出循环时,i 始终多加了一次,因此要执行i = i - 2;
}

不知这样解释明白了没
游雪泽0A
2012-03-12 · TA获得超过102个赞
知道答主
回答量:168
采纳率:100%
帮助的人:32.9万
展开全部
因为你输出的是n呀,你程序中最后输出i, 第2步 每次都是最后i+2,并没有参与乘法。如果转到第3步,说明i不加2 就已经实现目标了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友28b4182
2012-03-12 · TA获得超过7214个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1618万
展开全部
应该是求1×3×5×…×n<=50000
最大整数吧
这样的话
第二步,如果S≤50000,这里退出的时候S>50000
想要小于的话就要减去2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
llweishao2589
2012-03-12
知道答主
回答量:39
采纳率:0%
帮助的人:11.3万
展开全部
因为在第二步 求出的数比N大2,所以要减2.简单说就是多执行了一步i=i+2;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式