设计一个函数,传入一个数字n,若n可以被3整除的返回1,可以被5整除返回2,可以被7整除返回3

354 阅读1分钟

早上深圳的太阳晒的皮肤贼疼,边走边想着一点事情来转移注意力,忽然间就想到前两天在掘金上看到一个前端面试题,虽说题目出的不是很严谨,但我就想着把他的题目修改下,延伸一下下,先看下图。。。

正如标题看到的,万一这个数即被3整除又被5整除,那该返回多少呢?那我这边想到的是返回12,话不多说,我贴代码了

function Ajust(num) {
            if ( typeof num != "number" || num == null ) {
                // 排除输入为空,以及输入非数字数据
                return false;
            }else {
                if ( num!=0 ) {
                    // 排除0
                    if( num < 0 ) {
                        return num + "为一个负数";
                    }else if ( num%3 === 0 && num%5 === 0 && num%7 === 0 ) {
                        return 123;
                    }else  if( num%3 === 0 && num%5 === 0 ) {
                    // 同时被3、5两个数整除
                        return 12;
                    }else if ( num%5 === 0 && num%7 === 0 ) {
                    // 同时被5、7两个数整除
                        return 23;
                    }else if( num%3 === 0 ) {
                        return 1;
                    }else if ( num%5 === 0 ) {
                        return 2;
                    }else if( num%7 === 0 ) {
                        return 3;
                    }else {
                        return num+ "不被这个数整除!"
                    }
                }
            }
        }
        console.log( Ajust(105) );  // 123
        console.log( Ajust(15) );  // 12
        console.log( Ajust(35) );  // 23
        console.log( Ajust(3) );  // 1
        console.log( Ajust(5) );  // 2
        console.log( Ajust(7) );  // 3
        console.log( Ajust(0) );  // undefined
        console.log( Ajust(-1) );  // -1为一个负数

这样基本所有情况都被考虑进去了,如果还有没有考虑进去的情况,还望大家指出修改