算法分析与设计:贪心算法(自然数加法分解乘积最大+马拉松接力问题+整数删除后取最大值)(C++可执行源码+完整算法分析)
题目1:设 n 为一自然数,n 可以分解成若干个不同的自然数的和,这样的分法有很多种,比如 n=10, 10 可以分解为:10=5+4+1; 10=5+3+2; 10+9+1; 10=8+2; 10=7+3; 10=6+4;10=7+2+1; 10=6+3+1;…。在所有这些分法中,各加数乘积最大的为 30, (10=5+3+2 中加数的乘积为5*3*2=30)。试编写程序,求各种分解方法中各加数乘积的最大值。 题目 2:有 n 个人参加一个马拉松接力游戏,游戏规定每个人可以根据自己的情况随时终止 游戏并由下一个人继续接力。由于每个人的情况不同,即使同一个人也不可能在整个游戏过 程中永远保持很好的状态。因此要求他们在比赛前根据每个人的情况需要制定一个接力规 则,使整个比赛的时间越少越好。请编写程序帮助他们制定这样的接力方案。 题目 3. 从一个由 k 位数字构成的正整数 n 中删除 m(m<=k)位数字,使删除后的数最大。