js函数练习解析(含if,循环,递归等语句)

js- - -函数练习解析(含if,循环,递归等语句)

1.编写函数,判断一个字符串的内容是不是纯数字

 function judge(str){
        var a=isNaN(str);//判断字符串是不是一个非数字
        if(a){
            console.log(str+"不是纯数字");
        }else{
            console.log(str+"是纯数字");
        }
    }
    judge("152a")

2.编写一个函数,计算三个数字的大小,按从小到大的顺序输出

  function compare(num1,num2,num3){
        var a;
        if (num1 > num2) {
            a = num1;
            num1 = num2;
            num2 = a;
        }
        if (num2 > num3) {
            a = num2;
            num2 = num3;
            num3 = a;
        }
        if (num1 > num3) {
            a = num1;
            num1 = num3;
            num3 = a;
        }
        console.log(num1+'<'+num2+'<'+num3);
    }
    compare(26,6,16)

3.求m-n之间数字的和

 function sum(m,n){
        var sum=0;
        if(m>n){        //判断m,n的大小
            for(i=n;i<=m;i++){
                sum += i;
            }
        }else{
            for(i=m;i<=n;i++){
                sum +=i;
            }
        }
        return sum;
    }
    console.log(sum(3,7));
  1. 使用函数完成任意数字阶乘的计算
  function jiecheng(n){
            var sum=1;
        for(var i=n;i>0;i--){
            sum=sum*i;
        }
        return sum;
    }
    console.log(jiecheng(10));

for循环条件可替换成:

        for(var i=1;i<=n;i++)
  1. 编写函数计算一个数字的长度
  function getLength(num){
        var count=0;//定义一个计数器
        while(num!=0){
            num=parseInt(num/10);
            count++;//每循环一次计数器+1
        }
        return count;
    }
    console.log(getLength(1235));

方法二.数值转字符串类型,利用字符串长度为字符数记录数值位数
(例:"1234"占四个字符数,记录四位数)

  function getLength(num){
         return String(num).length;
}

以下题较难理解---------------------------------------------------------------------------------------------------------------

  1. 编写函数digit(num, k),函数功能是:求整数num从右边开始的第k位数字的值,
    如果num位数不足k位则返回0。
 function digit(num,k){
        var knum=0;//第k位数字的值
        for(i=1;i<=k;i++){
            knum = num%10;
            num = parseInt(num/10);//除以10取整,经循环,使第k位始终为个位
        }
        return knum;
    }
    console.log(digit(2345,3));
  1. 编写一个函数,计算任意两个数字之间所能组成的奇数个数,数字必须是个位数。
    比如:计算0~3之间能组成的奇数是: 01、03、13、21、23、31
  function get(n,m){
        var count=0;
        if(m>n){
            for(var i=n; i<=m; i++){
                for(var j=n; j<=m; j++){
                    if(i==j) continue;
                    if( (i*10+j)%2 != 0 ){
                        console.log(i*10+j); 
                        count++;
                    }
                }
            }
        }else{
            for(var i=m; i<=n; i++){
                for(var j=m; j<=n; j++){
                    if(i==j) continue;
                    if( (i*10+j)%2 != 0 ){
                        console.log(i*10+j); 
                        count++;
                    }
                }
            }
        }
        return count;
    }
    console.log(get(3,0));
  1. 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,
    当输入n为奇数时,调用函数求1/1+1/3+…+1/n
 function sum(n){
        var sum=0;
        if(n%2){
            for(i=1;i<=(n+1)/2;i++){     //此处i指第几项
                sum +=1/(2*i-1);
            }
        }else{
            for(i=1;i<=n/2;i++){
                sum +=1/(2*i);
            }
        }
        return sum;
    }
    console.log(sum(6));
  1. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,
    加密规则如下:每位数字都加上5,然后用除以10的余数代替该数字,再将第一位和第四位交换,
    第二位和第三位交换,请编写一个函数,传入原文,输出密文
   function jiami(num){
        var ge=(num%10+5)%10;
        var shi=(parseInt(num%100/10)+5)%10;
        var bai=(parseInt(num%1000/100)+5)%10;
        var qian=(parseInt(num/1000)+5)%10;
        return ge*1000+ shi*100+ bai*10+ qian;
    }
    console.log(jiami(4986));

10.由于斐波纳挈数列是以兔子的繁殖引入的,因此也叫“兔子数列”。它指的是这样一个数列:,1,1,2,3,5,8
,13…很明显看出这样一个规律:从第三个数开始,后边一个数一定是在其之前两个数的和。在数学上,
斐波纳挈数列可以以这样的公式表示: F(n) = F(n-1) + F(n-2),(n>=2)

   function fbnq(n){
    if(n<=2){
        return 1;
    }else{
        return fbnq(n-1)+fbnq(n-2);
    }
}
document.write(fbnq(9));
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值