早教吧 育儿知识 作业答案 考试题库 百科 知识分享

请设计一个算法,从0~65536数列中随意选取5个数值,判断这5个数值是否连续相邻.注意:-5个数值允许是乱序的.比如:87506-0可以通配任意数值.比如:87506中的0可以通配成9或者4-0可以多

题目详情
请设计一个算法,从0~65536数列中随意选取5个数值,判断这5个数值是否连续相邻.
注意:
- 5个数值允许是乱序的.比如:8 7 5 0 6
- 0可以通配任意数值.比如:8 7 5 0 6 中的0可以通配成9或者4
- 0可以多次出现.
▼优质解答
答案和解析
设计如下几个变量:上下限m,n,计数变量i,j=1,特征变量t(这都是我随便起的名字哈)
算法:1.计数0的个数i
2.t=5-i
3.从第一个数开始(设为 a),计m=a-1,n=a+1
4.从下一个数开始依次进行判断,如果这个数等于0,跳过这个数,判断下一个.如果这个数等于m,则j加1,m减1;如果这个数等于n,则j加1,n加1,判断下一个数;如果上述条件都不符合,判断下一个,直到全部判断结束
5.将第四步进行4遍,得到最后j的值
6.如果j=t,则这5个数值是连续相邻的,否则不是
这个算法需要考虑极端情况.比如若初值n=65536,当判断某一个数等于n时,n不能变化.
看了请设计一个算法,从0~6553...的网友还看了以下: