js(循環,算法,數組)


  1.猜數游戲(在1-10中隨機選出一個數,如果輸入的數大了就輸出“猜大了”;如果輸出的數小了就輸出猜小了“”)-----循環嵌套語句

function guess(){//定義函數
        var num=parseInt(Math.random()*10);//隨機生成1——10的整數
        console.log(num);
        while(true){//直接將條件設置為真
        var guessnum=prompt("請輸入你要猜的數");
        if(guessnum=="exit"){//當猜到exit時,直接退出該循環
                console.log("歡迎下次再來");
                break;
         }if(guessnum>num){//當循環為真;輸出“猜大了”
                console.log("猜大了")
         }else if(guessnum<num){//當循環為真;輸出“猜小了”
                console.log("猜小了")
         }else{
                console.log("恭喜你,猜對了");
                break;
        }
        }
    }

2.用戶輸入年份,月份,日期,計算輸入的這一天是這一年的第幾天---------循環語句

function time(){//輸入年 ,月,日
        var year=Number(prompt("請輸入年份"));
        var month=Number(prompt("請輸入月份"));
        var day=Number(prompt("請輸入日期"));
        var  i=1;//循環變量
        var total=0;//設置累加的天數
        var  isrun=(year%4==0 && year%100!=0) || year%400==0 //判斷這一年是否為閏年
        while(i<month){//執行,輸入的日期是這一年的多少天----當前年份的總天數
            //累加天數
             switch(i){//運用switch(){}語句來確定每月所對應的天數
                 case 1://case的下落
                 case 3:
                 case 5:
                 case 7:
                 case 8:
                 case 10:
                 total+=31;
                 break;
                 case 2:
                 //判斷2月份的天數
                 if(isrun){
                 total+=29
                }
                 total+=28;
                break;
                case 4:
                case 6:
                case 9:
                case 11:
                total+=30;
                break;    
               }
                i++;
               }
                total=total+day;//輸出該月是該年的第幾天

                console.log(total)

3.打印出1-100之間的數-----循環語句

function fun(){
                //控制台打印1-100之間所有的數字
                for(var i=1(聲明變量i);i<=100(根據區間來將變量進行判斷);i++(變量的更新;防止進入死循環)){
                    console.log(i);
                }
                console.log(i);//
            }

4.    定義一個函數,打印九九乘法口訣表------>循環語句

            1*1=1           
            1*2=2 2*2=4
            1*3=3 2*3=6 3*3=9
            1*4=4 2*4=8 3*4=12 4*4=16
            ...
            1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
            1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

        var num=""
        function cheng(){
        for(line=1;line<10;line++){//控制行的語句(外層循環)
            
        for(var i=1;i<=line;i++){//控制每一行的循環
               var result=line*i;
               num+=i+"*"+line+"="+i*line;
               document.write(i+"*"+line+"="+i*line+"\t")//將line的每一行空格
               }
               document.write("<br />")//將line的每一行進行換行處理
              }
    }

5..計算用戶輸入的數字的階乘,例如用戶輸入的是5,則計算5的階乘,5的階乘為 5*4*3*2*1*/\

      
 var jie=prompt("輸入數字的階乘");//輸入該數字的階乘
 var num=1;//
 for(var i=2 ;i<=jie;i++){
    
 num=num+"*"+i;//排列出num“*”i
}
 console.log(num);

6..打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數其各位數字立方和等於該數本身。例如:153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。  */
/*for( var shui=100;shui<1000;shui++){//s輸出水仙花這個數,在進行區間判斷
shui=Number(shui);將其數據類型定義為整數
var gei =shui%10;//通過取余來得到其個位數的數字
 var s=parseInt((shui/10)%10);//用類型的辦法來得到其十位數的的數
var b=parseInt(shui/100);//得到百位數的數

if(shui==(gei*gei*gei)+(s*s*s)+(b*b*b)){;//根據條件來判斷是否為水仙花數
console.log(shui);
}
}

7.求s=a+aa+aaa+aaaa+aa...a的值,其中a(數字)是一個數字。例如2+22+222+2222+22222(此時共有5(疊數)個數相加),幾個數相加有鍵盤控制。

//判斷
var num=prompt("請輸入一個數");//用戶輸出數字
var d=prompt("請輸入他的疊數");//用戶輸出該數字的疊數
var n=0,sum=0;//聲明n為加數;sum為累加的和
for(var i=0;i<=d;i++){//判斷條件;如果聲明一個變量,他的范圍不超過這個疊數
    sum+=n*10+num;//累加
}
console.log(sum);//輸出
8.判斷101-200之間有多少個素數,並輸出所有素數(大於1的自然數,且他的因子只有兩個(他本身和1))
      var sushu;
      for(var sushu=101;sushu<199;sushu++){
          
              var sushu;//聲明變量,定義為素數
             
              var count = 0;//count定義為該數因子的個數
              for( var j = 1(聲明一個數j) ; j<= sushu(將j作為一個小於素數自然數) ; j++(更新) ){
                  if( sushu%j == 0 ){//判斷在這個數是否有因子
                  //因子
                  count++; //有一個因子,因子數就加一
              }
                  }
              //循環結束后 如果 count == 2  一定是素數;因為素數只有一個因子
              if( count == 2 ){
                  console.log(sushu)
              }
          }
      
      console.log(sushu);

9.定義一個函數,返回1+1/3+1/5+1/7+....1/n(所有分母都屬於奇數)的和*/

        function num(){
            var r=Number(prompt("請輸入一個數"));
   
            for(var i=1,s=0;i<=r;i++){
                if(i%2!=0){//判斷i是否為奇數
                    s+=1/i;//累加所有的和
                }
            }
            console.log(s);
       
        }

10.求1-100之間所有數的


   var num = 1;//(定義累乘的變量)
   for(var i =1;i<= 100;i++){//判斷名題
    num *= i

  }

11.求1-100之間的所有數,及平均值
var s = 0;//聲明累加的和

var p = 0;//聲明平均數

for(var i = 1; i <= 100;i++){//輸入他的區間

     s = s + i;//所有的和

     if (i == 100){//平均數

         p = s /i;
}
   }

console.log(s,p)
12.用"*"表示十行十列的矩陣

for(var i=1;i<=10;i++){//排出行數,控制行的外層循環

for( var r=1;r<=10;r++){//排出每一行的內容

document.write(“*”)//滿足條件后再頁面顯示出“*”的圖樣

}

document.write(“<br />”)//在每一行輸出完后進行換行

}
 console.log()
13.輸入一個數字,然后判斷是否為正整數如果不是,提示重新輸入;如果是,將該數字左右反轉,然后輸出(列如:12345,翻轉之后為54321)

var sum=1;

for(var i=1;i<=2;){循環遍歷

var num =prompt("請輸入一個數字");

if(Number(num)>0&&parseint(num)==parsefloat(num)){判斷是否只一個整數

break;

}

}

/*num=12345

5 num%10;

4 num/10%10;

3 num/100%10;

........

*/

doucument.write(“您輸入的數字為:“+num+”<br />”);

for(var j=0;;j++){

sum*=10;

var fz=parseInt(num%sum/(sum/10));

document.write(fz);

if(num-sum<=0){

break;

}

}

實現效果;您輸入的數字為:123456    654321

14.1~100奇數和

  var sum=0;
             for(var i=1,sun=0;i<=100;i+=2){循環輸出1-100的奇數;並聲明累加sum的初始值
                 sum+=i;累加
             }
             document.write(sum+"<br />");

15.1~100偶數和

  var sum=0;
             for(var i=2,sun=0;i<=100;i+=2){循環輸出所有偶數;並聲明累加sum的初始值
                 sum+=i;
             }
             document.write(sum);

16、五個小朋友排成一隊。

  問第一個多大了,第一個說比第二個大兩歲
  問第二個,第二個說比第三個大兩歲,以此類推。
  問第五個小朋友幾歲了,第五個小朋友說3歲了
  問第一個小朋友幾歲?

            var a = 1;聲明一個變量a(代表第一個小朋友的年齡); for (var i=1; i<=5; i++){循環出每個小朋友的年齡 a = a + 2;根據題目條件來累加年齡  } document.write("第一個小朋友"+a+"歲了");
 
        

17、湊錢1,2,520元錢有多少種可能

 
        
for(var a=0;a<=20;a++){循環1時是次數 for(var b=0;b<=10;b++){2塊時湊齊的次數 for(var c=0;c<=4;c++){5塊時湊齊的次數 if(a+2*b+5*c==20){ document.write("一塊:"+a+"兩塊:"+b+"五塊:"+c+"<hr />")  }  }  } }
18.定義函數,去掉數組中重復的元素
            function num1(){//定義一個函數
                var j=[1,2,3,4,5,6,2,1,4,7,911,2,1];//輸出數組的每個元素
                for(var i=0,result=[];i<=j.length-1;i++){//循環遍歷數組j每個元素;並創建一個空數組result
                    for (var z=0;z<result.length;z++){//循環遍歷數組result的每個元素;
                        if(j[i]==result[z]){//如果數組z和數組j中有相等的元素;則退出當前循環
                            break;//
                        }
                    }
                    if(z==result.length){//如果沒有相同的元素,則將這個元素存儲在result數組中
                        result[result.length]=j[i];//
                    }
                        
                    }
                    console.log(result);//最后輸出的數組中沒有重復的元素
                    }
19.定義函數,找出一個整數數組中的最大值
            
            function num(){//有一個用來存儲最大值的變量 max 將第一個元素賦值給max
                var zheng=[1,2,3,4,5,6,2,1,4,7,911,2,1];
                var max=zheng[0]
                for(var i=1 ;i<=zheng.length-1;i++){//從第二個元素下標唯一的元素開始遍歷數組
                    if(max<zheng[i]){//將數組中的元素和max做比較
                        max=zheng[i]
                        //如果arr數組中的元素大於max
                        //修改max中的值,為數組當前的值
                    }
                }
                console.log(max) //zheng[i]>max && (max=arr[i]);
            }
20.編寫一個程序,最多接受10個數字,並求出其中所有正數的和。
用戶可通過輸入exit終止程序,統計出用戶輸入的正數個數,並顯示這些正數的和。
(1)輸入非數值,不占用10次機會之一,但要求重新輸入;
(2)輸入的是數值,只累加整數;
判斷是否為一個數:Number(num)不為NaN(說明為數字)
判斷一個數字為正數:Number(num)>0;
判斷一個數字是否為整數:parseint(num)=parseFloat(num);

var i=1,sum=0,n=0;
        while(i<=3){
         var num = prompt("請您輸入一個數,我會為您計算出所有正數的和~");
              if(Number(num)){
                if(num==999){
                        break;
                       }
                        else if(num>=0){
                            sum = sum + parseFloat(num);
                            i++;
                            n++;
                        }
                        else if(num<0){
                            i++;
                        }
                    }
                }
               document.write("您一共輸入"+n+"個正整數"+"<br />它們的和為:"+sum);
 




  
   

 

 



       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM