猫史档案馆


【 算法教学III 】《神秘数字》答案及教程

用户:查看:2 回复:7 评论:2 创建时间:2017-03-02T17:35:56


题目:

找出给出的一个100位正整数中,乘积最大的连续10个数字。它们的乘积是多少?

原题目链接:

https://www.codemao.cn/wiki/forum/2720

给大家讲一下这个题的思路,先把模块发给大家:

(右键—在新标签页中打开图片,即可打开高清图片看清楚)

这里的难点其实是 j+i  这个概念的理解。

首先先搞明白的是,怎么做连续10个数相乘?

对计算机来说,最简单的就是:

1,得数 = 第一个数;

2,重复10次:

{

新得数 = 得数 X 第 i 个数;

得数 = 新得数;

}

如果你们懂得更多的计算机知识以后(比如说“=”在计算机中是赋值运算的意思),第2步还可以简化。

有人会说,我们直接写一个10个数的乘法算式出来不是更简单吗?

如果是100个数相乘呢?

1000个呢?

对于重复循环来说,你只需要把10改成100或1000就可以了。

但你要直接写一个1000个数相乘的算法乘式,那恐怕比老师的罚抄还要累。

理解了怎么做连续10个数相乘,你还可以做到:

A:让第1,3,5,7……17,19项相乘

B:让这一项开始一直乘到最后的第100项的乘积

在发现中搜索“ 连续数字乘积 ”,也可以购买到源代码。

下期见。

All by @tc


回复

上一页1 页 / 共 1下一页
小假LittleFalse小假LittleFalse

看不懂...我太笨了...


点赞0


评论


I桔汁糖浆II桔汁糖浆I

其实不需要这样的,只需要来个if length≥10就够了,这样可以适应任何数

点赞0


评论


~断了个弦~~断了个弦~

比我想的简单多了qaq


点赞0


评论


~断了个弦~~断了个弦~

绕了个圈应该是为了让大家看得懂233

点赞0


评论


@假·猫老祖

这是高中比赛的一道题摘出来的呢,里面涉及到一个循环嵌套,很多刚接触的大学生也不会,不要担心。

从简单的题目开始,可以看看算法热身题2,你的编程逻辑很好啊,加油。


@迷你断弦君

算法题一般来说最终的代码量其实都不大,之后多做做就知道是什么套路啦,加油。


点赞0


评论


漓花花漓花花

挖坟

点赞0


评论


北酱北酱

挖坟

点赞0


评论