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

//程序1.
//有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
//此方法循环执行了n*n*(n-1)次 48次 function num(n){ for (var i=1,s=0;i<=n ;i++ ){ for (var j=1;j<=n ;j++ ){
    if(i==j)continue;
for (var k=1;k<=n ;k++ ){ if (j!=k && i!=k){ s++; console.log(100*i+10*j+k); } } } } return s; } var f=num(4); console.log(f); //-------------------------------------------------------------------------------------------------------------------------------------- //程序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%提成,从键盘输入当月利润I,求应发放奖金总数? var I=120; if (I<=10){ console.log(0.1*I); }else if (I>10 && I<=20){ console.log(0.25+0.075*I); }else if (I>20 && I<=40){ console.log(0.75+0.05*I); }else if (I>40 && I<=60){ console.log(1.55+0.03*I); }else if (I>60 && I<=100){ console.log(2.45+0.015*I); }else{ console.log(2.95+0.01*I); } //------------------------------------------------------------------------------------------------------------------------------------ //程序3. //一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数时多少? //方法一 for (var j=1;j<=10000; j++){ for (var i=1;i<=j; i++){ var a=i*i-100 var b=j*j-268; if (a==b){ console.log(a); } } } //方法二 //令这个数x,y*y=x+100,(y+n)*(y+n)=y*y+168->(y=84/n - 0.5*n)>=0 ->0<n<=13 for (var n=1 ;n<=13 ;n++ ){ var y=84/n - 0.5*n; if (y==parseInt(y)){ var x=y*y-100; console.log(x,n); } } //------------------------------------------------------------------------------------------------------------------------------------ //程序4. //输入某年某月某日,判断这一天是这一年的第几天? //year->y month->m day-d function getYear(y){ if (y%4==0 && y%100!=0 || y%400==0){ return true; }else{ return false; } }; var y=2019,m=12,d=18; var sum=0; if (m>12 || d>31){ console.log('日期输入错误'); }else{ if (getYear(y)){ switch (m){ case 1: sum=d; break; case 2: sum=31+d; break; case 3: sum=d+31+29; break; case 4: sum=d+31+29+31; break; case 5: sum=d+31+29+31+30; break; case 6: sum=d+31+29+31+30+31; break; case 7: sum=d+31+29+31+30+31+30; break; case 8: sum=d+31+29+31+30+31+30+31; break; case 9: sum=d+31+29+31+30+31+30+31+31; break; case 10: sum=d+31+29+31+30+31+30+31+31+30; break; case 11: sum=d+31+29+31+30+31+30+31+31+30+31; break; default: sum=d+31+29+31+30+31+30+31+31+30+31+30; } console.log(sum); }else{ var sum1=0,sum2=0; for (var i=1;i<=m-1 ;i++ ){ if (i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12){ var n=parseInt(i/20); sum1+=(n+1)*31; }else if (i==4 || i==6 || i==9 || i==11 ){ var n=parseInt(i/20); sum2+=(n+1)*30; }else if(i==2){ var sum3=28; } sum=d+sum1+sum2+sum3; } console.log(sum); } } //------------------------------------------------------------------------------------------------------------------------------------ //程序5. //输入三个整数x,y,z,请把这三个数由小到大输出。 //方法一 function num(x,y,z){ var minFirst,minSecond,minThird,min,min2; if (x<y){ min=x;min2=y }else{ min=y;min2=x } if (min<z){ minFirst=min; if (min2<z){ minSecond=min2; minThird=z; }else{ minSecond=z; minThird=min2; } }else{ minFirst=z; minSecond=min; minThird=min2; } return minFirst+' '+minSecond+' '+minThird; } var n=num(13,8,16) console.log(n); //方法二 function num(x,y,z){ if (x<y && x<z){ min1=x; if (y<z){ min2=y; min3=z; } }else if (y<z){ min1=y; if (x<z){ min2=x; min3=z; } }else{ min1=z; if (x<y){ min2=x; min3=y; } } return min1+' '+min2+' '+min3; } var n=num(13,8,16) console.log(n); //------------------------------------------------------------------------------------------------------------------------------------ //程序6. //用*号输出字母C的图案. // ***** // * // * // * // ***** //方法一 for (var j=1;j<=5 ;j++ ){ if (j==1 || j==5){ for (var i=1,str='';i<=5 ;i++){ str+='*'; } }else if (j==2 || j==3 || j==4){ for (var i=1,str='';i<=1 ;i++){ str+='*'; } } console.log(str); } //方法二 console.log(' '+'***'); console.log(' '+'*'); console.log(' '+'*'); console.log(' '+'***'); //----------------------------------------------------------------------------------------------------------------------------------- //程序7 //将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5 var a=90; var num=a; var arr=[]; if(a==1){ console.log('1没有质因数'); }else{ for (var i=2,j=0;i<=a;i++){ if (a%i==0){ a/=i; arr[j]=i; j++; i=1; } } console.log(num+'='+arr.join('*')); } //------------------------------------------------------------------------------------------------------------------------------------ //程序8 //输出9*9口诀 //方法一-正 for (var i=1;i<=9;i++){ for(var j=1,str='';j<=i;j++){ str+=j+'*'+i+'='+i*j+' '; } console.log(str); } //方法二-倒 for (var i=9;i>=1;i--){ for(var j=i,str='';j>=1;j--){ str+=j+'*'+i+'='+i*j+' '; } console.log(str); } //------------------------------------------------------------------------------------------------------------------------------------ //程序9 //要求输出国际象棋棋盘 for(var i=1;i<=8;i++){ for(var j=1,str='';j<=8;j++){ if((i+j)%2==1){ str+='■'; }else{ str+='□'; } } console.log(str); } //程序10 //古典问题:有一对兔子,从出生后第3个月过后每个月都生一对兔子,小兔子长到第三个月之后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数是多少? var m=10; for(var i=1,sum=0;i<=m;i++){ if(i<=3){ sum=2; }else if(i<=6){ sum+=2; }else{ sum+=2*i-10; } console.log(sum); }

 

posted @ 2019-03-24 14:44  lcspring  阅读(4443)  评论(0编辑  收藏  举报