前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript解决那些常见的算法题

JavaScript解决那些常见的算法题

作者头像
越陌度阡
发布2022-11-27 17:34:41
2310
发布2022-11-27 17:34:41
举报

1. 已知公鸡5元每只,母鸡3元每只,小鸡3只1元,100元可以买100只鸡,求公鸡、母鸡、小鸡可买多少只?

代码语言:javascript
复制
for (var i = 0; i <= 20; i++) {
    for (var j = 0; j <= 33; j++) {
        for (var z = 0; z <= 100; z++) {
            if ((i + j + z == 100) && (5 * i + 3 * j + z / 3 == 100)) {
                 document.write('公鸡:' + i + '母鸡:' + j + '小鸡:' + z + '<hr/>');
            }
        }
    }
}

或者还可以这样写

代码语言:javascript
复制
for (var i = 0; i <= 20; i++) {
    for (var j = 0; j <= 33; j++) {
        z = 100 - i - j;
        if ((z % 3 == 0) && (5 * i + 3 * j + z / 3 == 100)) {
            document.write('公鸡:' + i + '母鸡:' + j + '小鸡:' + z + '<hr/>');
        }
    }
}

2. 已知1、2 、3 、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

代码语言:javascript
复制
var count = 0;                    
for (var i = 1; i <= 4; i++) {          
    for (var j = 1; j <= 4; j++) {         
        if (i != j) {            
            for (var k = 1; k <= 4; k++) {
                if (j != k && k != i) {
                    console.log("" + i + j + k);
                    count++;
                }
            }
        }
    }
};
console.log("共" + count + "次循环");

3. 请用JavaScript输出一个国际象棋棋盘。

代码语言:javascript
复制
for (var r = 0, str = ""; r < 8; r++) {
    for (var c = 0; c < 8; c++) {
        str += (r + c) % 2 == 0 ? "□" : "■";
    }
    str += "\n";
}
console.log(str);

4. 鸡兔同笼,共48只132条腿,求鸡和兔各有多少只?

代码语言:javascript
复制
function start(a,b){
    var x=0;
    var y=0;
    for(var x=0;x<a; x++){
        y=48-x;
        if (2*x+4*y==b){
            console.log("鸡有"+x+"只,兔有"+y+"只");
        }
    }
}

5. 将一个正整数分解质因数。例如:输入90, 打印出 2*3*3*5

代码语言:javascript
复制
function decompose(n){
    var arr=[];                   
    for(var i=2;i<=n;i++){        
        while(n%i==0){           
            arr.push(i);          
            n/=i;                 
        }
    }
    return arr.join("*");          
}
console.log(decompose(90));

6. 随机按规则输出双色球的号码。

代码语言:javascript
复制
function doubleBall() {
    var reds = [];
    while (reds.length < 6) {
        var r = parseInt(Math.random() * 33 + 1);
        for (var i = 0; i < reds.length; i++) {
            if (r == reds[i]) {
                break;
            };
            if (i == reds.length) {
                reds.push(r);
            };
        }
    }
    function cmp(a, b) { 
        return a - b; 
    }
    reds.sort(cmp);
    var blue = parseInt(Math.random() * 16 + 1);
    return String(reds) + "|" + blue;
}
document.write(doubleBall());

7. 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问某个月的兔子总数为多少?

这个是典型的fibbnacci数列,即数列从第3项开始,每一项都等于前两项之和,如 1,1,2,3,5,8,13,21,34,55

代码语言:javascript
复制
function fib(n){
    if(n<3){
         return 1;
    }else{
        return fib(n-1)+fib(n-2);
    }
}
console.log(fib(10));

以上是采用的递归方法,但是效率极低,建议用循环代替,代码如下:

代码语言:javascript
复制
function fib(n){
    if(n<3){
        return 1;
    }else{
        var a=1,b= 1,c;
        for(var i=3;i<=n;i++){
            c=a+b;
            a=b;
            b=c;
        }
        return c;
    }
}
console.log(fib(10));

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

代码语言:javascript
复制
for(var i=10,sum=1;i>1;i--){
    sum+=1;
    sum*=2;
}
console.log(sum);

9. 1~100之间奇数和与偶数和分别是多少?

9.1. 1~100之间奇数和

代码语言:javascript
复制
var sum=0;
for(var i=1;i<=100;i++){
    if(i%2==1){
        sum+=i;
    }
}
document.write('1~100之间奇数的和为:'+sum+'<hr/>');

9.2. 1~100之间偶数和

代码语言:javascript
复制
var sum=0;
for(var i=1;i<=100;i++){
    if(i%2==0){
        sum+=i;
    }
}
document.write('1~100之间偶数的和为:'+sum+'<hr/>');

10. 输入一个数,判断它是素数还是合数?

代码语言:javascript
复制
function isPrime(n){
    if(n<=3){
        return true;
    }else{
        for(var i=2;i<=Math.sqrt(n);i++){ 
            if(n%i==0){
                return false; 
            } 
        }                      
    }                       
}
console.log(isPrime(17));

11. 分别打印出正序和倒序9*9乘法表。

11.1. 正序的9*9乘法表

代码语言:javascript
复制
document.write('<table border="1" cellpadding="0" cellspacing="0" bgcolor="#ABCDEF" width="80%">');
    for(var i=1;i<=9;++i){
        document.write('<tr>');
            for(var j=1;j<=i;j++){
                document.write('<td>'+i+'x'+j+'='+(i*j)+'</td>');
            }
        document.write('</tr>');
    }
document.write('</table>');

11.2. 倒序的9*9乘法表

代码语言:javascript
复制
document.write("<table border='1' cellpadding='0' cellspacing='0' bgcolor='aqua' width='80%'>");
    for(var i=9;i>=1;i--){
        document.write('<tr>');
            for(var j=1;j<=i;j++){
                document.write('<td>'+i+'x'+j+'='+(i*j)+'</td>');
            }
        document.write('</tr>');
    }
document.write('</table>');

12. 用*输出一个等腰三角形

代码语言:javascript
复制
function triangle(ln){
    for(var r=1;r<=ln;r++){                  
        for(var i= 1,str="";i<=ln+r-1;i++){  
            str+=i<=ln-r?" ":"*";            
        }
        console.log(str);
    }
}
triangle(5)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 已知公鸡5元每只,母鸡3元每只,小鸡3只1元,100元可以买100只鸡,求公鸡、母鸡、小鸡可买多少只?
  • 2. 已知1、2 、3 、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
  • 3. 请用JavaScript输出一个国际象棋棋盘。
  • 4. 鸡兔同笼,共48只132条腿,求鸡和兔各有多少只?
  • 5. 将一个正整数分解质因数。例如:输入90, 打印出 2*3*3*5
  • 6. 随机按规则输出双色球的号码。
  • 7. 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问某个月的兔子总数为多少?
  • 8. 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少?
  • 9. 1~100之间奇数和与偶数和分别是多少?
    • 9.1. 1~100之间奇数和
      • 9.2. 1~100之间偶数和
      • 10. 输入一个数,判断它是素数还是合数?
      • 11. 分别打印出正序和倒序9*9乘法表。
        • 11.1. 正序的9*9乘法表
          • 11.2. 倒序的9*9乘法表
          • 12. 用*输出一个等腰三角形
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档