编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数求1/1+1/3+…+1/n

首先我们看到这个题目,第一眼应该想到这是一个找规律的题目,毕竟这种和数学题目一样的,我们高中也是这么做的,只是我们通过所学知识把他表现出来.

接下来我们开始寻找规律,看看能不能发现什么


我们创建一个sum用来存储相加的和

结果
sum(1) 1/2
sum(2) 1/2
sum(3) sum(1)+1/3
sum(4) sum(2)+1/4
sum(5) sum(3)+1/5

不难看出,当我们的值为n的时候,那么他的结果便为 sum(n)==sum(n-2)+1/n

接下来我们就可以开始做题目了

  • 首先编写一个函数,命名这个函数名为sum
function sum(n){
     

}
  • 当我们输入的数字为1或者2时候的值是固定的,所以这两个值不适用我们的公式,直接输出即可
function sum(n){
     
       if(n==1){
     
           return 1;
       }else if(n==2){
     
        return 1/2;
       }
}
  • 当输入的值为其他数字的时候,我们便可以用我们总结出来的规律了,我们这离可以用一个递归函数。
function sum(n){
     
            if (n == 1) {
     
                return 1;
            }
            else if (n == 2) {
     
                return 1 / 2;
            }
            else {
     
                return sum(n - 2) + 1 / n;
            }
        }
  • 接下来我们就可以调用这个函数看看结果,将他在控制台输出,为了方便判断,我们的值取小一点
console.log(sum(3));
  • 执行结果
    编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数求1/1+1/3+…+1/n_第1张图片
    为了确保准确性,我们多实验几次
function sum(n){
     
            if (n == 1) {
     
                return 1;
            }
            else if (n == 2) {
     
                return 1 / 2;
            }
            else {
     
                return sum(n - 2) + 1 / n;
            }
        }
        console.log(sum(4));

编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数求1/1+1/3+…+1/n_第2张图片

结果是正确的

你可能感兴趣的:(js,前端)