函数的返回值及递归调用小案例

函数返回值案例
1.编写一个函数,功能计算任意数字的阶乘

    function getFac(num){
            //求num的阶乘
            var fac = 1;
            for (var i = 1; i <= num; i++) {
                fac *= i;
            }
            return fac;
        }
        var f = getFac(5);
        console.log(f);

2.定义一个函数,功能求任意一个数的平方

function getSquare(num){
            return num * num;
        }
        
        console.log(getSquare(2));

3.编写函数实现:求2的平方的阶乘+3的平方的阶乘(至少用两个函数实现,一个函数实现平方,一个函数实现阶乘)

function getSquare(num) {//求num的平方
            return num * num;
        }
        function getFac(num) {//求阶乘
            var fac = 1;
            for (var i = 1; i <= num; i++) {
                fac *= i;
            }
            return fac;
        }
        function fn() {
            return getFac(getSquare(2)) + getFac(getSquare(3));
        } console.log(fn());

4.编写一个函数,功能判断一个任意一个数是否是素数

 function isPrime(num) {
                 var sum = 0;
                 for (i = 1; i <= num; i++) {
                     if (num % i == 0) {
                         sum += i;
                     }
                 }
                 if (sum === num + 1) {
                     return num + "是一个素数";
                 } else {
                     return num + "不是一个素数";
                 }
             } console.log(isPrime(18));

5.计算100-200之间所有素数的和

function isPrime(num) {
            //1 不是一个素数,排除1这个值
            if (num === 1) return false;
            //判断num是否是一个素数,
            //如果是素数,函数返回 一个true
            //如果不是素数,函数返回 一个false;
            for (var i = 2; i < num; i++) {
                if (num % i === 0) {
                    //执行到这里,num不是一个素数
                    return false;//不是素数
                }
            }
            //当程序执行到这里,说明num是一个素数
            return true;
        }
        function getSum() {
            var sum = 0;
            for (var i = 100; i <= 200; i++) {
                //判断i是否是素数
                if (isPrime(i)) {//true:i是素数
                    //                  console.log(i);
                    sum += i;
                }
            }
            return sum;
        }
        var sum = getSum();
        console.log(sum);

6.输出:100可以拆成哪两个素数的和

function isPrime(num) {
            //1 不是一个素数,排除1这个值
            if (num === 1) return false;
            //判断num是否是一个素数,
            //如果是素数,函数返回 一个true
            //如果不是素数,函数返回 一个false;
            for (var i = 2; i < num; i++) {
                if (num % i === 0) {
                    //执行到这里,num不是一个素数
                    return false;//不是素数
                }
            }
            //当程序执行到这里,说明num是一个素数
            return true;
        }

    function fn(){
            var num;
            for (var i = 1; i <= 50; i++) {
                
                if(isPrime(i)){//true:i是一个素数
                    //console.log(i);//100 - i
                    num = 100 - i;
                    //判断num是否是一个素数
                    //console.log(num);
                    if(isPrime(num)){//true:num是一个素数
                        //console.log(num)
                        console.log("100可以拆成" + i + "和" + num +"两个素数的和");
                    }
                    
                }
            }
        }
        fn();

函数递归调用案例
1.使用递归实现1-100的累加

1. function box(num, result) {
               num++;
               result += num;
               //console.log(num);
               if (num == 100) {
                   return result;
               }
               return box(num, result);
           } var r = box(0, 0);
           console.log(r);
2.function box(num) {
               num++;
               //console.log(num);
               if (num == 100) {
                   return 100;
               }
               //1+2+3+..+100
               return num+box(num);
           } var r = box(0);
           console.log(r);

2.1-100的偶数累加

function box(num){
            //num+=2;
            if(num === 100){
                return 100;
            }
            return num + box(num+2);
        }
        alert(box(0));

3.10的阶乘

function box(num){
            if(num === 10){
                return 10;
            }
            return num * box(++num);
        }
        alert(box(1));
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。