程序员必做50题-JavaScript篇(1-15)

程序员必做50题(1-15)

程序员必做50题(16-30)—————— 程序员必做50题(31-45)

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

for(var i=1;i<=4;i++){
    for(var j=1;j<=4;j++){
        for(var k=1;k<=4;k++){
            if(i!=j && i!=k && j!=k){
                console.log(i,j,k)
            }
        }
    }
}

2.企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%; 20 万到40万之间时,高于20万元的部分,可提成5%; 40万到60万之间时高于40万元的部分,可提成3%; 60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润,求应发放奖金总数?

var profit = 1000001;
var bonus = 0;
if(profit>0 && profit<=100000){
        bonus = profit*0.1;
    }else if(profit>100000 &&profit<=200000){
        bonus += 10000+(profit-100000)*0.075;
    }else if(profit>200000 && profit<=400000){
        bonus += 17500+(profit-200000)*0.05;
    }else if(profit>400000 && profit<=600000){
        bonus += 27500+(profit-400000)*0.03;
    }else if(profit>600000 && profit<=1000000){
        bonus += 33500+(profit-600000)*0.015;
    }else{
        bonus += 39500+(profit-1000000)*0.01;
}
console.log(bonus);

3.一个整数,它加上100后是一-个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

for(var i=1;i<1000;i++){
    var a = parseInt(Math.sqrt(i+100));
    var b = parseInt(Math.sqrt(i+168));
    if(a*a===(i+100) && b*b===(i+168)){
        console.log(i);
    }
}

4.输入某年某月某日,判断这一天是这一年的第几天?

var year = 2021,month = 3, day = 25;
var monthDay = [31,28,31,30,31,30,31,31,30,31,30,31];
var days = 0,i = 0;
    if((year%4===0 && year%100!==0) || year%400===0){
        if(month>2){
           days +=1; 
        }
    }
    for(;i<month-1;i++){
        days += monthDay[i];
    }
    days += day;
    console.log(days);

5.输入三个整数x,y,z,请把这三个数由小到大输出。

function sma (a,b,c){
var d,x,micro,middle,big;
    if(a<b){
        d = b;
        x = a;
    }else{
        d = a;
        x = b;
    }
    if(d < c){
        big = c;
        micro = x;
        middle = d;
    }else if(x > c){
        big = d;
        middle = x;
        micro = c;
    }else{
        big = d;
        middle = c;
        micro = x;
    }
console.log(micro+' '+middle+' '+big)
}
sma(6,2,8);

6.用*号输出字母C的图案。

for(var i=1;i<6;i++){
    if(i===1 || i===5){
        console.log('* * * * ')
    }else{
        console.log('*')
    }
}
for(var i=1;i<6;i++){
    var a = '';
    if(i==1 || i==5){
        for(var j=1;j<5;j++){
            a += '* ';
        }
    }else{
        a='* '
    }
    console.log(a);
}

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

var num = 90;
var a = num+'=';
for(var i=2;i<=num;i++){
    if(num%i===0){
        num/=i;
        a+=i+'*'
        i=1;
    }
}
a = a.slice(0,a.length-1)
console.log(a)

8.输出9*9口诀。

for(var i=1;i<=9;i++){
    var sum ='';
    for(var j=1;j<=i;j++){
        sum+=j+'*'+i+'='+i*j+' '
    }
    console.log(sum)
}

9.要求输出国际象供棋盘。

for(var i=1;i<=8;i++){
    var a = '';  
    for(var j=1;j<=8;j++){
        if((i+j)%2===0){
            a += '■';
        }else{
            a += '□';
        }
    }
    console.log(a)
}

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

function a(x){
    var a1 = 1,a2 = 1;
    for(var i=3;i<=x;i++){
        var c = a1;
            a1 = a2;
            a2 = c + a1;
    }
    return a2;
}

11.判断100-200之间有多少个素数,并输出所有素数。

var a = 100,b = 200,n = 0,num = 0;
for( a ; a <= b ; a++ ) {
   for ( var j = 1; j <= a; j ++) {
       if(a % j == 0){
           n++;
       }
   }
   if( n == 2){
       num++;
       console.log(n);
   }
}

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

for(var i=1;i<10;i++){
    for(var j=0;j<10;j++){
        for(var k=0;k<10;k++){
            if((i*i*i)+(j*j*j)+(k*k*k)===(i*100)+(j*10)+k){
                console.log(i,j,k);
            }
        }
    }
}

13.利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89 分之间的用B表示,6 0分以下的用C表示。

function grade(x){
    return x>=90 ? 'A' : (x>=60 ? 'B' : 'C')
}
console.log(grade(88));

14.输入两个正整数m和n,求其最大公约数和最小公倍数。

function adj(m,n){
    var c = 0,w,e;
    if(m<n){
        c = m;
        m = n;
        n = c;
    }
    w = m%n;
    e = m*n;
    while(w!=0){
        m = n;
        n = w;
        w = m%n;
    }
    return '最小的公被数是:'+e/n+'最大的公约数是:'+n;
}
console.log(adj(3,5))

15.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

function statistics(x){
    var script = 0,letter = 0,blank = 0,digit = 0,charset = 0;
    for(var i=0;i<x.length;i++){
       var a = x.charCodeAt(i)
        if(a >= 19986){
            script++;
        }else if((a >= 65 && a <= 90) || (a >= 97 && a <= 122)){
            letter++;
        }else if(a >= 48 && a <=57){
            blank++;
        }else if(a === 32){
            digit++;
        }else{
            charset++;
        }
    }
    return '中文有:'+script+'个 英文有:'+letter+'个 数字有:'+blank+'个 空格有:'+digit+'个 其他字符有:'+charset+'个';
}
console.log(statistics('你好!! HELLO word! 123'))

作者自述

新手上路,望各位大佬指教-----------
如有相关资料、视屏给作者看看可否?

后续的题以后更新-------
autchan@163.com
欢迎提各种意见----------

--------------------------------------------------------------------------------------- 学WEB前端的第14天

程序员必做50题(16-30)—————— 程序员必做50题(31-45)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值