程式36:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人推出圈子,問最後留下的是原來第幾號的那位 var n=20; var arr=[]; for(var i=0;i<n;i++){ arr.push(1); } for(var j=1,least=n;;j++){ ...
程式36:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人推出圈子,問最後留下的是原來第幾號的那位 var n=20; var arr=[]; for(var i=0;i<n;i++){ arr.push(1); } for(var j=1,least=n;;j++){ if(least==2){ break; } for(var k=0,tag=0;;k++){ if(arr[k]==1){ tag+=1; if(tag==3){ arr[k]=0; least-=1; break; } } } } console.log('最後留下的是原來第'+(arr.lastIndexOf(1)+1)+'號的那位'); console.log(arr); 結果 最後留下的是原來第2號的那位 [ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] 程式37:寫一個函數,求一個字元串的長度,在main函數中輸入字元串,並輸出其長度 function main(str){ for(var i=0;;i++){ if(str[i]==undefined){ return i; } } } console.log('長度為'+main('atfggdrsrgfdst')); 結果 長度為14 程式38:編寫一個函數,輸入n為偶數時,調用函數求1/2+1/4+...+1/n,當輸入n為奇數時,調用1/3+1/5+...+1/n function fn(n){ for(var i=n,sum=0;i>1;i-=2){ sum+=1/i; } return sum; } console.log(fn(1452)); 結果 3.582727113427774 程式39:海灘上有一堆桃子,五隻猴子來分。第一隻猴子把這堆桃子平均分為五份,多了一個,這隻猴子把多的一個扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分為五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五隻猴子都是這樣做的,問海灘上原來最少有多少個桃子? for(var i=2;;i++){ var tag=0; for(var j=1,res=i,get=0;j<=5;j++){ get=(res-1)*0.2; res=(res-1)*0.8; if(get%1!=0){ break; } tag+=1; } if(tag==5){ console.log('海灘上原來最少有'+i+'個桃子'); break; } } 結果 海灘上原來最少有3121個桃子 程式40:809*??=800*??+9*??+1 其中??代表的兩位數。8*??的結果為兩位數,9*??的結果為3位數。求??代表的兩位數,及809*??的結果 for(var i=10;i<=99;i++){ if(8*i>=10&&8*i<=99&&9*i>=100&&9*i<=999){ console.log('??代表的兩位數是'+i); console.log('809*??的結果'+809*i); } } 結果 ??代表的兩位數是12 809*??的結果9708