js练习题 (5)

1、判定2000-2500年中是闰年的年,输出闰年的条件是:

(1).能被4整除,但同时不能被100整除的年份都是闰年
(2).能被400整除的年份是闰年
其它情况都不是闰年

document.write('闰年有:  ')
for(var i=2000;i<2500;i++){
    if ((i%4 == 0 && i%100 !=0)||i%400==0) {
        document.write( '---'+i+' ')
    }    
}

2、 水仙花数 (用三层循环实现)

例:水仙花数 153=111+555+333
输入一个数,判断是不是水仙花数

var sxh=parseInt(prompt('输入一个数字')) 
var b=parseInt(sxh/100)
var s=parseInt(sxh%100/10)
var g=sxh%10
if (b*b*b+s*s*s+g*g*g==sxh) {
    document.write('是水仙花数')
} else {
    document.write('不是水仙花数')
}

3、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

var myArray=new Array()
let i,j,sum=0;
myArray[0]=1;
myArray[1]=2; 
for(i=2;i<21;i++){
    myArray[i]=myArray[i-1]+myArray[i-2];
}
for (j = 0; j < 20; j++) {
    sum=sum+parseInt(myArray[j+1])/parseInt(myArray[j])
}
document.write('2/1+3/2+5/3+8/5+...前20个相加的:'+sum)

4、 抓球问题:有红球5个,黑球7个,白球9个,取出12个有多少种组合 分别是什么,

var sum=0;
for (var i=0;i<=5;i++){
    for (var j=0;j<=7;j++){
        for(var k=0;k<=9;k++){
            if(i+k+j==12){
                sum=sum+1;
                document.write('———————'+"红:"+i+"黑:"+j+"白:"+k);
                if (sum%3==0) {
                    document.write("<br />");
                }
            }

        }
    }
}
document.write("<br />"+"共有"+sum+"种可能性");

5、 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

var ten=1
document.write('第10天有:1个桃子<br />')
for (let i = 10; i >1; i--) {
    ten=ten*2+2
    document.write("第"+(i-1)+'天有:'+ten+'个桃子<br />');
}

6、 用数组实现 序列:1,2,3,5,8,13…。找出第20个数是多少?得出前20个数之和是多少?

var sum=3
var myarry=[20]
myarry[0]=1
myarry[1]=2
for (let i = 2; i < 20; i++) {
    myarry[i]=myarry[i-1]+myarry[i-2]
    sum+=myarry[i]
}
document.write('总数是:'+sum+'<br>')
document.write('第20个数是:'+myarry[19])

7、 猜数字游戏,有一个0-100随机数 玩家有5次输入的机会猜,每次猜一次,都要将结果告诉玩家是小了,还是大了,如果在5次机会内猜中,输出“聪明”,程序结束,如果5次机会用完 程序直接结束。

var sj=Math.floor(Math.random()*101);
var jishu=5
var x=prompt('请输入你猜的数:')
for (let i = 5; i>0; i--) {
    if (x>sj) {
        jishu=jishu-1
        if (jishu==0) {
            alert('没有机会了哦!')
            break                           
        }
        alert('你猜的数大了,还有'+jishu+'次机会')
        x=prompt('请输入你猜的数:')  
    } else if(x<sj) {
        jishu=jishu-1
        if (jishu==0) {
            alert('没有机会了哦!')   
            break                      
        }
        alert('你猜的数小了,还有'+jishu+'次机会')  
        x=prompt('请输入你猜的数:')
    }else{
        alert('聪明!')
        break     
    }
}
alert('公布答案——随机数是:'+sj)

8、 有一个4个长度的数组,每个位置装有0-9之间的随机数字,有10次输入的机会来猜每个位置的上的数是什么,每次猜完4个数字以后都要给出提示,正确几个 错误几个,只有位置和数字完全正确才算正确,其他情况全视为错误。

var four=new Array(4)
document.write('四个随机数下标及其数值为:'+'<br>')  
for (let i = 0; i < 4; i++) {
    four[i]=Math.floor(Math.random()*11); 
    document.write('('+i+','+four[i]+')')   
}//产生4个随机数
alert('请输入数的位置(下标)及其数值,例如2,6:')
for (let j = 0; j < 1; j++) {
    var shuru=prompt('第'+(j+1)+'输入:') 
    var result=shuru.split(',')//将数据按,分割
    document.write('<br>')
    if (four[result[0]]==result[1]) {
        document.write(result[0]+','+result[1]+'输入正确√'+'<br>')
    }else{
        document.write(result[0]+','+result[1]+'输入错误×'+'<br>')
    }
}

9、 数组去重 [1,2,3,4,2,1,3,5,6,9,5] 返回出来的结果 [1,2,3,4,5,6,9]

var myarry=[1,1,2,2,3,4,5,6,6]
for (let i = 0; i < myarry.length; i++) {
    for (let j = i+1; j < myarry.length; j++) {
        if (myarry[i]===myarry[j]) { 
            myarry.splice(j, 1); 
        }        
    }    
}
document.write(myarry)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值