codewars练习(javascript)-2021/3/3

codewars-js练习

2021/3/3

github 地址

my github地址,上面有做的习题记录,不断更新…

【1】<7kyu>【Beginner Series #5 Triangular Numbers】

Triangular number is the amount of points that can fill equilateral triangle.

Example: the number 6 is a triangular number because all sides of a triangle has the same amount of points.

给定一个数,判断是否为三角形数

example

T(n) = n * (n + 1) / 2,
n - is the size of one side.
T(n) - is the triangular number.

isTriangular(1), true
isTriangular(2), false 

solution

<script type="text/javascript">
        function isTriangular(t) {
            // console.log(t)
            let a = 1;
            let b = 1;
            let c = -2*t;
            let deta = Math.pow(b,2) - (4 * a * c)
            if(deta<0)return false;
            else{
                let result =(-1 + Math.sqrt(deta))/(2* a)
                // console.log(result)
                if(result == 0) return false
                else if(result % 1 == 0)return true
                else return false
            }   
        }

        // 验证
        console.log(isTriangular(1));//true
        console.log(isTriangular(2));//false
        console.log(isTriangular(14));//false
	</script>
【2】<8kyu>【Return Negative】

example

makeNegative(1); // return -1
makeNegative(-5); // return -5
makeNegative(0); // return 0
makeNegative(0.12); // return -0.12

solution

<script type="text/javascript">
        function makeNegative(num) {
            return num<=0?num:(-num);
        }

        // 验证
        console.log(makeNegative(1)); // return -1
        console.log(makeNegative(-5)); // return -5
        console.log(makeNegative(0)); // return 0
        console.log(makeNegative(0.12)); // return -0.12
	</script>
【3】<7kyu>【Beginner Series #3 Sum of Numbers】

example

GetSum(1, 0) == 1   // 1 + 0 = 1
GetSum(1, 2) == 3   // 1 + 2 = 3
GetSum(0, 1) == 1   // 0 + 1 = 1
GetSum(1, 1) == 1   // 1 Since both are same
GetSum(-1, 0) == -1 // -1 + 0 = -1
GetSum(-1, 2) == 2  // -1 + 0 + 1 + 2 = 2

solution

<script type="text/javascript">
        function getSum(a,b){
            // console.log(a,b)
            var max = Math.max(a,b)
            var min = Math.min(a,b)
            var sum =0
            for(var i=min;i<=max;i++){
                sum +=i;
            }
            return sum
        }
        // 验证
        console.log(getSum(0,-1));//-1
        console.log(getSum(-1,2)); //-1+0+1+2=2
	</script>

以上为自己思路供大家参考,可能有更优的思路。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值