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);
 




  
   

 

 



       

转载于:https://www.cnblogs.com/lyx1014/p/10864404.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值