//程序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); }