传智播客旗下高端IT在线教育平台|咨询热线:010-56288220

返回顶部 返回列表
1833 12

[JavaEE专区] 【知识竞赛】这些编程题,你会吗?看谁做的快~

[复制链接]

24

主题

82

帖子

393

积分

超级版主

kongone

Rank: 8Rank: 8

积分
393
183312 kongone 发表于 2017-8-14 15:29:05
小小编程题,你会做吗?

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?  
程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....


语言无限制,用你最擅长的语言来写,前十名发帖且答案正确的同学将获得价值50元的课程代金卷一张。


大胆在评论区写出你的答案,小编审核答案正确后会主动联系你嗒~

回复

1

主题

5

帖子

17

积分

新手上路

不爱你爱谁

Rank: 1

积分
17
不爱你爱谁 发表于 2017-8-21 10:03:31
<!--JS解题开始-->
<script>

function how($moon,$Start_number,$m){
$apart =$m-1; // 兔子相隔多久要生孩子,减1
$mun =$Start_number; //当前有多少少只
/*逻辑计算开始*/
$record=[];
for($i=$m;$i<=$moon;$i++){
if($i===$m) {$mun+=$Start_number ;
$record[$i]=$Start_number;
}
else {
$mun+= ($record[$i]=$record[$i-1] +($record[$i-$apart]?$record[$i-$apart]:0));
}
}
//问题需要是只 ,但结果是对哦,1对=2只 那么简单了,就是乘以2
return $mun+"对 ("+($mun*2)+"只)"; //OK,得到结果
}
</script>
<input name="" type="button" onclick="alert(how(12,1,3))" value="用JS语言解这条题" />
<!--JS解题结束-->

不知道对不对,请检阅
回复

0

主题

5

帖子

18

积分

新手上路

星星我的眼睛

Rank: 1

积分
18
星星我的眼睛 发表于 2017-8-21 10:08:06
用PHP解题:
<!--PHP解题开始-->
<?php
function how($moon,$Start_number,$m){
$apart =$m-1; // 兔子相隔多久要生孩子,减1
$mun =$Start_number; //当前有多少少只
/*逻辑计算开始*/
$record=array();
for($i=$m;$i<=$moon;$i++){
if($i===$m) {
$mun+=$Start_number ;
$record[$i]=$Start_number;
}
else {
$mun+= ($record[$i]=$record[$i-1] +(isset($record[$i-$apart])?$record[$i-$apart]:0));
}
}
//问题需要是只 ,但结果是对哦,1对=2只 那么简单了,就是乘以2
return $mun."对 (".($mun*2)."只)"; //OK,得到结果
}

/*方法写完,看上去复杂,其实这题就是考验你的逻辑能力*/

/*方法使用方法

how(7,1,3) @参数1:取第多少个月的兔 @参数2: 一开始有多少只 (有一对,对吧) @参数3:兔子多少个后才有孩子生 (3个月有孩子生)

*/
/*测试一下准确性 用12个月来测试吧*/
for( $i=1;$i<=12;$i++){
echo "第".$i."个月生了". how($i,1,3)."<br>";

}

?>
<!--PHP解题结束-->
回复

0

主题

5

帖子

18

积分

新手上路

星星我的眼睛

Rank: 1

积分
18
星星我的眼睛 发表于 2017-8-21 10:08:53

可能有不完善的地方,希望同学老师多多指教
回复

1

主题

5

帖子

25

积分

新手上路

小米测试账户

Rank: 1

积分
25
小米测试账户 发表于 2017-8-23 11:24:25
发表于 2017-8-21 10:03
function how($moon,$Start_number,$m){
$apart =$m-1; // 兔子相隔多久要生孩子,减1
$mun =$Start_num ...

没问题吧
回复

1

主题

6

帖子

19

积分

新手上路

博小白_00012

Rank: 1

积分
19
博小白_00012 发表于 2017-8-23 11:33:06
原谅我文科生,几只兔子傻傻分不清
回复

0

主题

5

帖子

18

积分

新手上路

zx12345

Rank: 1

积分
18
zx12345 发表于 2017-8-23 11:54:00
不会写
回复

0

主题

19

帖子

56

积分

注册会员

蒙爱的幽默人生

Rank: 2

积分
56
蒙爱的幽默人生 发表于 2017-8-23 23:45:30
从出生后第3个月起每个月都生一对,是说第三个月就开始生,后边又说长到第三个月后每个月又生一对,是说第四个月才生,题是不是有点问题?
回复

0

主题

1

帖子

8

积分

新手上路

努力超越

Rank: 1

积分
8
努力超越 发表于 2017-8-24 17:59:14
public class Demo {
        public static void main(String[] args) {
                System.out.println(cal(10));
        }
        private static int cal(int month){
                if(month <=2) return 1;
                else{
                        // 在这个月可以生兔子的月份的兔子数+前一个月的兔子数
                        return cal(month-2) + cal(month -1);
                }
        }
}
回复

0

主题

1

帖子

14

积分

新手上路

dave

Rank: 1

积分
14
dave 发表于 2017-10-13 11:58:35
###python语言###
def f(n):
    if n == 1 or n == 2 :
        return 1
    return f(n-1)+f(n-2)

i = 1
while i <= 50:
    print ("第%d个月的兔子数量为:%d" %(i,f(i)))
    i += 1
回复

您需要登录后才可以回帖 登录 | 立即注册