js经典计算题

1.利用递归实现阶乘: 
//阶乘—-递归方法

function jiecheng(n){
        if(n>1)
        {
            return n*jiecheng(n-1);

        }else{
            return 1;
        }
    }
document.write(jiecheng(1000));
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2.递归实现斐波那契数列

function fei(n){
    if(n>2){
        return fei(n-1)+fei(n-2);   
    }else{
        return 1;   
    }   
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
document.write(fei(20));
 
 
  • 1
  • 1

3.实现一个九九乘法表

     for(var i = 1;i<=9;i++){
        for(var j = 1;j<=i;j++){
            var desc = j + "*" + i + "=" + j*i + " ";
            document.write(desc);
        }
        document.write("");
      }
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

下面用while实现

    var i = 1;
     while(i<=9){
        var j = 1;
        while(j<=i){
            var desc = j + "*" + i + "=" + j*i + " ";
            document.write(desc);
            j++;
        }
        document.write("");
        i++;
     }
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

4.求一个数组的最大数和最小数并求出其对应的下标index

var arr = [3,1,2,4,5,8,7,6];

    var max = arr[0];   //最大值   
    var min = arr[0];   //最小值
    var maxindex = 0;
    var minIndex = 0;

    for(var i = 0;i<arr.length;i++){
        if(arr[i]>max){
            max = arr[i];       
            maxindex= i;
    }if(arr[i]<min){min = arr[i];
            minIndex= i;
    }} 
        document.write(max);
 document.write(min + " ");document.write(index);//分别输出就可以
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

5.求100-999之间的水仙花数(指一个n位数,它的每个位上的数字的n次幂之和等于它本身)

     for(var i = 100;i<=999;i++){
        var bai = parseInt(i/100);  //百    987除以100 =parseInt(9.87) =>9
        var shi = parseInt(i/10)%10; //十   987 除以 10 = parseInt(98.7) =>98  98%10 = 8;
        var ge = i % 10;    //987 % 10    
        var result = ge*ge*ge + shi*shi*shi + bai*bai*bai;  //临时的结果
        if(i==result){
            document.write(i+"");
        }
     }  
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

6.输出100-200之间的所有素数

    for(var i = 100;i<=200;i++){
        var flag = true;  //定义 标志

        for(var j = 2;j<i;j++){
            if(i%j==0){
                flag = false;
                break;  //跳出当前循环
            }
        }

        if(flag){
            document.write(i+"<br/>");
        }
      }
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

7.计算1-100之间所有奇数的和

    var sum = 0;  //存放所有奇数的和
     for(var i = 1;i<=100;i++){
         if(i%2!=0){ //是否是奇数
            sum = sum + i;
         }
     }
     document.write(sum);
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

8.setTimeout代替setInterval

    var n = 0;
     function shu(){
        document.write(n);
        n++;
       setTimeout(shu,1000);
     }  
     shu();
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

9.输出闰年

     var y,j=0;
     for(y=1000;y<=2000;y++){
    if((y%4==0&&y%100!=0)||(y%100==0&&y%400==0)){
        j++;
        document.write(y+"");
    }
    if(j%4==0){
        document.write("");     
        }
     }
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

10.打印出直角三角形的星星

    for(var i=1;i<=5;i++){
    for(var j=1;j<=i;j++){
        document.write("☆");
        }
    document.write(""); 
     }
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

11.打印正方形的星星

    var i=1;
     while(i<=4){
       var j=5;
       while(j>=1){
        document.write("☆");
        j--;
        }
      document.write("");
      i++;  
    }






















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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值