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