编程题目。急。。。
编程题:蜘蛛有8条腿,蜻蜓有6条腿和2对翅,蝉有6条腿和1对翅,三种虫子共18只,共118条腿和20对翅。问每种虫子各几只?求过程啊大哥...
编程题:蜘蛛有8条腿,蜻蜓有6条腿和2对翅,蝉有6条腿和1对翅,三种虫子共18只,共118条腿和20对翅。问每种虫子各几只?
求过程啊大哥 展开
求过程啊大哥 展开
3个回答
展开全部
可以通过循环的办法穷举搜索,但也可以分析一下:
比如只有蜻蜓和蝉有翅膀,先搜索满足翅膀数的蜻蜓数和蝉数,在通过腿确定蜘蛛数。
至少从翅膀数可以知道蝉的数目一定是偶数。等等。
分析清楚了再编程更有效率。
注意到,假设蝉为0只,且蜻蜓数目为N,则N=10,腿为:10×6+(18-10)*8=60+64=124>118,所以蜘蛛的数目必然小于8只。蝉不为0。设蝉为2,则蜻蜓为N=9,于是9*6+12+(18-9-2)*8=122>118
可以看出少一只蜘蛛,需要增加两只蝉,以匹配翅膀数目,但相应的腿每次降低两个,于是,这个编程可以简化为递减的次数反推各虫子的数目,于是,可以再减两次,即蝉增加到6只,蜻蜓降低分别1,至7,于是结果为:
蜻蜓、蝉、蜘蛛:7、6、5所以,这个编程可以如此简化实现上述规律,而不是穷举法。
比如只有蜻蜓和蝉有翅膀,先搜索满足翅膀数的蜻蜓数和蝉数,在通过腿确定蜘蛛数。
至少从翅膀数可以知道蝉的数目一定是偶数。等等。
分析清楚了再编程更有效率。
注意到,假设蝉为0只,且蜻蜓数目为N,则N=10,腿为:10×6+(18-10)*8=60+64=124>118,所以蜘蛛的数目必然小于8只。蝉不为0。设蝉为2,则蜻蜓为N=9,于是9*6+12+(18-9-2)*8=122>118
可以看出少一只蜘蛛,需要增加两只蝉,以匹配翅膀数目,但相应的腿每次降低两个,于是,这个编程可以简化为递减的次数反推各虫子的数目,于是,可以再减两次,即蝉增加到6只,蜻蜓降低分别1,至7,于是结果为:
蜻蜓、蝉、蜘蛛:7、6、5所以,这个编程可以如此简化实现上述规律,而不是穷举法。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询