JavaScript循环练习题

JavaScript循环练习题
①输出1-10与5相乘的结果

<script>
    function ld(){
    
    
         for (var i=1;i<=10;i++){
    
    
              console.log(5*i);
            }
    }
    ld()
</script> 

②用程序计算1-100的和,并输出

 <script>
 	function lxy(){
    
    
            var i=0;
            var sum=0
            while (i<=100){
    
    
                sum+=i;
                i++;
            }
            return sum;
        }
	document.write(lxy())
</script>       

③任意输入一个数,判断该数是否为水仙化数,(每位上的数字的立方和等于该数本身)

 <script>
        var num=Number(prompt("请输入一个三位数:"));
        if (num>=100&&num<1000){
    
    
            var a=Math.floor(num/100);
            var b=Math.floor(num/10)%10;
            var c=num%10;
            var d=Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3);
            if (d==num){
    
    
                alert(num+"是水仙花数");
            }else{
    
    
                alert(num+"不是水仙花数");
            }
        }else{
    
    
            alert("请输入一个三位数");
        }
</script>

输出所有的水仙花数

 <script>
        var ld=[];
        for (var i=100;i<1000;i++){
    
    
            var a=Math.floor(i/100);
            var b=Math.floor(i/10)%10;
            var c=i%10;
            var d=Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3);
            if (d==i){
    
    
                ld.push(i);
            }
        }
        console.log(ld);
</script>

④把100-200之间不能被3整除的数输出

<script>
        for (var i=100;i<=200;i++){
    
    
            if (i%3==0){
    
    
                continue;
            }else{
    
    
                console.log(i);
            }
        }
</script>

⑤将1998-2008年之间的闰年年份输出

<script>
        for (var i=1998;i<=2008;i++){
    
    
            if ((i%4==0&&i%100!=0)||i%400==0){
    
    
                console.log(i);
            }
        }
</script>

⑥求S = a + aa + aaa + aaaa + aaaaa + aaaaaa + aaaaaaa +……
a和n从键盘输入,例如用户输入的a是2,n是5,则要求将2+22+222+2222+22222的和计算出来

<script>
        var a=Number(prompt("请输入a的值:"));
        var n=Number(prompt("请输入n的值:"));
        var num='';
        var nums=[];
        var sum=0;
        for (var i=0;i<n;i++){
    
    
            num+=a;
            nums.push(num);
        }
        for (var j=0;j<nums.length;j++){
    
    
            sum+=parseInt(nums[j]);
        }
        document.write(nums.join("+")+"="+sum);
 </script>

⑦一个球从1000米高空下落,落地后弹起,每次弹起的高度是下落时的一半,
问第五次落地时弹起的高度,一共又经历了多长的距离?

<script>
        var h=1000;
        // 落地距离
        var l=h/2;
        // 弹起距离
        var s=0;
        // 总距离
        for (var i=0;i<5;i++){
    
    
            s=h+l+s;
            h=h/2;
            l=l/2;
        }
        document.write(s)
</script>

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

<script>
        var s=1;
        for (var i=1;i<10;i++){
    
    
            s=(s+1)*2;
        }
        document.write(s)
</script>

⑨打印一个九九乘法表

<script>
       document.write("<table>")
        for (var i=1;i<10;i++){
    
    
            document.write("<tr>")
            for (var j=1;j<i+1;j++){
    
    
                document.write("<td>")
                document.write(j+"X"+i+"="+j*i)
                document.write("</td>")
            }
            document.write("</tr>")
        }
        document.write("</table>")
</script>

代码运行结果如下:
在这里插入图片描述
⑩求乘积等于100 的所有乘数和被乘数(以一对的形式输出)

<script>
        for (var i=1;i<=100;i++){
    
    
            for (var j=1;j<=100;j++){
    
    
                if (i*j==100){
    
    
                    document.write(i+"X"+j+'='+i*j+"<br>");
                }
            }
        }
</script>

代码运行结果如下:
在这里插入图片描述
十一、将100以内所有的素数输出

<script>
        for (var i=2;i<=100;i++){
    
    
            var ld=false;
            for (var j=2;j<i;j++){
    
    
                if (i%j==0){
    
    
                    ld=true;
                }
            }
            if (!ld){
    
    
                console.log(i);
            }
        }
</script>

十二、将100以内既是合数又是奇数的数添加到一个数组并打印这个数组,最终计算这个数组的中位数

<script>
        var ld;
        var arr=[]
        for (var i=2;i<=100;i++){
    
    
            ld=false;
            for (var j=2;j<i;j++){
    
    
                if (i%j==0&&i%2!=0){
    
    
                    ld=true;
                }
            }
            if (ld){
    
    
                arr.push(i);
            }
        }
        console.log(arr);
        var len=arr.length;
        var zhong;
        // 中位数
        if (len%2==0){
    
    
            zhong=(arr[len/2]+arr[(len/2)-1])/2;
        }else{
    
    
            zhong=arr[Math.floor(len/2)];
        }
        document.write(zhong);
</script>

代码运行结果如下:
在这里插入图片描述
十三、计算1!+2!+3!+4!…n!

<script>
        function jc(n){
    
    
            if (n==1){
    
    
                return 1;
            }else{
    
    
                return jc(n-1)*n
            }
        }

        var num=Number(prompt("请输入n的值"));
        var sum=0;
       for (var i=1;i<=num;i++){
    
    
            sum+=jc(i);
       }
       document.write(sum)
</script>

十四、计算1-1/2+1/3-1/4+1/5…1/n

<script>
        var n=Number(prompt("请输入n的值:"));
        var sum=0;
        for (var i=1;i<=n;i++){
    
    
            if (i%2==0){
    
    
                sum-=1/i;
            }else{
    
    
                sum+=1/i;
            }
        }
        document.write(sum);
</script>

十五、牙刷5元一件,香皂2元一件,洗发水15元一件,把100元刚好用完,有多少种购物方式?

<script> 
        for(a =0;a<20;a++){
    
                            
            for(b=0;b<50;b++){
    
        
                for (c=0;c<6;c++){
    
    
                    if((5*a)+(2*b)+(15*c)==100){
    
                                    
                    document.write('牙刷:'+a+"香皂:"+b+"洗发水:"+c);
                    document.write("<br>")
                    }  
                }                                                                  
            }                    
        }
</script>

代码运行结果如下:
在这里插入图片描述
十六、循环接受本班学生的考试成绩,有30个学生,每个学生有5门成绩,接受并计算所有学生的所有门成绩的和,输出 (学生的人数由用户控制,询问用户是否要继续,答案为’1’时就接收下一个学生的成绩,每个学生还是5门成绩)

<script>
        var arr1=new Array();
        var arr2=new Array();
        var arr3=new Array();
        var arr4=new Array();
        var arr5=new Array();
        var arr6=new Array();
        var count=0;
        var all_sum=0
        while (true){
    
    
            count+=1;
            var score1=Number(prompt("请输入第"+count+"个学生的第一门成绩"));
            var score2=Number(prompt("请输入第"+count+"个学生的第二门成绩"));
            var score3=Number(prompt("请输入第"+count+"个学生的第三门成绩"));
            var score4=Number(prompt("请输入第"+count+"个学生的第四门成绩"));
            var score5=Number(prompt("请输入第"+count+"个学生的第五门成绩"));
            var sum=score1+score2+score3+score4+score5;
            arr1.push(score1);
            arr2.push(score2);
            arr3.push(score3);
            arr4.push(score4);
            arr5.push(score5);
            arr6.push(sum);
            var jixu=prompt("是否要继续,是输入1,")
            if (count>30){
    
    
                alert("别输入了,咱班就30名学生")
                break;
            }else{
    
    
                if (jixu==1){
    
    
                    all_sum+=sum;
                }else{
    
     
                    all_sum+=sum;
                    for (var i=0;i<count;i++){
    
    
                        document.write("第"+(i+1)+"个学生的成绩分别是"+arr1[i]+','+arr2[i]+','+arr3[i]+','+arr4[i]+','+arr5[i])
                        document.write("总分是"+arr6[i])
                        document.write("<br>")
                    }
                    break;
                }
            }
        }
        document.write("所有学生的总分加起来是:"+all_sum)
</script>

十七、求Fibonacci数列40个数.这个数列特点为,第1,2两个数为1,1,从第三个数开始,该数是前面两个数的和.即1,1,2,3,5,8,13,21……

<script>
        var a=1,b=1;
        var c;
        var i=0;
        while (i<40){
    
    
            document.write(a+"<br>")
            c=b;
            b=a+b;
            a=c;
            i++;
        }
</script>

猜你喜欢

转载自blog.csdn.net/RoddyLD/article/details/113131220