KC20230202 JS练习题

这篇博客整理了KC20230202的13道JavaScript编程题目,涵盖了前端开发中常见的问题,包括逻辑判断、数组操作、DOM操作等多个方面,旨在提升开发者在实际项目中的JS应用能力。
摘要由CSDN通过智能技术生成

问题1

/* 1、【回文数】
打印5位数中的所有回文数,每行打印10个数。最后统计一下一共有多少个5位回文数。*/

var palindromeNums = function(){
    var n ;
    var num = 0;
    for(var i = 10000; i < 100000 ; i++){
        if(isPalindrome(i)) {
            num++;
            document.writeln(i);
            if(num%10 == 0) document.write("<br>");
        }
        
    }
    return num;
}

问题2

/*2、【求完数】
    一个数如果恰好等于它的所有真因子(即除了自身外的所有因数)之和,
    这个数就称为"完数"。请编程求出1000 以内的所有完数。 
    */


perfectNums = function(){
    for(var i = 2 ; i < 1000 ; i++){
        if(isPerfect()) document.write(i);
    }
}

var isPerfect = function(n){
    var sum = 0;
    for(var i = 1 ; i <= n/2 ; i++){
        if(n % i == 0 ) sum+=i;
    }
    if(sum == n) return true;
    else return false;
}

问题3

/* 3、【求不重复数字】
有1、2、3、4一共四个数字,能组成多少个不相等且无重复数字的三位数?都是多少?
*/

var unequalNums  = function(a,b,c,d){
    var arr = [a,b,c,d];
    var n = arr.length;
    var ans = 0;
    for(var i = 0; i < n; i++){
        var bai = arr[i] * 100;
        for(var j = 0; j < n; j++){
            if(i == j ) continue;
            var shi = arr[j] * 10;
            for(var k = 0 ;k < n; k++){
                var ge = arr[k];
                if(i == k || j == k) continue;
                document.writeln(bai + shi + ge);
                ans ++;
            }
        }
        document.write("<br>");
    }
    return ans;
}
document.writeln("总数为:"+unequalNums(1,2,3,4));

问题4

/*
 4.【根据输入求输出-求位数、逆序输出】
键盘录入一个正整数,请求:1.它是几位数?2.逆序打印出各位数字。
 */

var n = prompt("请输入一个正整数");
    n = n + "";
    document.write("正整数是:"+ n + "<br>");
    document.write("位数:"+n.length);
    n = parseInt(n);
    document.write("<br>逆序输出:");
    var ge = 0;
    while(n){
        ge = n % 10;
        n = parseInt(n / 10);
        document.writeln(ge);
    }

问题5

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

var up = 2, down = 1;
var sum = 0;
for(var i = 1 ; i <= 20 ;i++){
    var num = up/down;
    var nowUp = up + down;
    console.log("up是:" + up + "down是:" + down );
    down = up;
    up = nowUp;
    sum += num;
    
}
document.writeln(sum);

问题6

/*
6、【求奇数/偶数和】
求100以内的所有奇数/偶数的和
*/

var jiNum = 0;
var ouNum = 0;
for(var i = 0 ;i <= 100 ;i++){
    i % 2 == 0 ? ouNum +=i : jiNum +=i;
}
document.writeln("奇数和是:"+ jiNum + "偶数和是:" + ouNum);

问题7

/* 
7、【自由落体】
假如一个小球从100米高度自由落下,每次落地后就反跳回原高度的一半。
那么求它在第10次落地时,共经过多少米?第10次反弹多高?
*/

var n = 100;
var t = 10;
for(var i = 1 ;i <= 10; i++){
    sum += n;
    n = n / 2;
}
document.write("共经过: " + sum + "米 第10次反弹: " + n + "米");

问题8

/*
8、【循环练习-蜗牛爬井】
井里有一只蜗牛,他白天往上爬5米,晚上掉3.5 米,井深56.7米,计算蜗牛需要多少天才能从井底到爬出来。
*/
var go =5, back = 3.5;
var len = 56.7;
var sum = 0, day = 0;
while(sum < len){
    sum += go;
    day ++;
    if(sum >= len ) break;
    sum -= back; 
    
   // document.writeln("第" + day + "天 走了" + sum +"米<br>");
}
document.write("需要" + day + "天");

问题9

/* 
9、【求和-去除7倍数和包含7】
打印出1-100之间所有不是7的倍数和不包含7的数字, 并求和。
*/

printNotHaveSeven = function(n){
    var sum = 0;
    for(var i = 1; i <= 100; i++){
        if(!haveSeven(i)) {
            document.write(i + "<br>");
            sum += i;
        }
    }
    document.write("和为:"+sum);
}

var haveSeven = function(n){
    if(n % 7 == 0) return true;

    while(n){
        if(n % 10 == 7) return true;
        n = parseInt(n / 10);
    }

    return false;
}
printNotHaveSeven();

问题10

/*
10、【排序】
随机给十个数字,对它们进行排序。(可以给一个有10个整数元素的数组,然后对数组排序)
*/

var arr = new Array();
    document.write("随机10个数 : " )
for(var i = 0 ;i < 10; i++){
    arr[i] = parseInt(Math.random() * 100);
    document.write(arr[i] + " ");
}
    document.write("<br>")
    arr.sort(fun);

    function fun(a,b){
        return a-b;
    }
    document.write("从 小 到 大 : " )
for(var i = 0; i < 10; i++){
    document.write(arr[i] + " ");
}

问题11

/*
11. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一
对兔子,假如兔子都不死,问每个月的兔子总数为多少?
*/

var arr = new Array();
arr[0] = 1;
arr[1] = 1;
var n = 11;
for(var i = 0 ; i <= n; i++){
    if(i>1)
    arr[i] = arr[i - 1] + arr[i - 2];
    document.write("第" + (i + 1) + "个月 兔子数量为 : " + arr[i] + "<br>");
}

问题12

/* 
12. 判断101-200之间有多少个素数,并输出所有素数。 
素数又叫质数,就是除了1和它本身之外,再也没有整数能被它整除的数。也就是素数只有两个因子。

*/

    printPrime = function(n,m){
        document.write(n + "-" + m + "之间的素数为: ");
        for(var i = n; i<= m; i++){
            if(isPrime(i)){
                document.write(i + " ");
            }
        }
    }
    var isPrime = function(n){
        for(var i = 2 ;i <= Math.sqrt(n); i++){
            if(n % i == 0){
                return false;
            }
        }
        return true;
    }
    printPrime(101,200);

问题13

/*
13. 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
*/

printFNums = function(){
    for(var i = 100; i< 1000; i++){
        var ge = i % 10;
        var shi = parseInt(i / 10 % 10);
        var bai = parseInt(i / 100);
        if(ge * ge * ge + shi * shi * shi + bai * bai * bai == i){
            document.write(i + " ");
        }
    }
}
printFNums();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值