数学算法(非常规算法)

1.数学算法篇

**非常规算法如:**

5²=4²+3²,4+3=7;
7²=6²+3²+2²,6+3+2=11,
9²=8²+4²+1²,8+4+1=13,

代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .card {
            width: 20em;
            display: inline-block;
            border: 2px rgb(228, 228, 228) solid;
            margin: 20px;
            padding: 20px 25px;
            position: relative;
            cursor: pointer;
            /* border-image:linear-gradient(to right,#000718,#23b7cb) 1 10; */
            box-shadow: rgb(211, 210, 210) 5px 5px 15px 2px;
            /* box-shadow: rgb(120, 129, 255) 5px 5px 15px 2px; */
        }

        .card:hover {
            /* bottom: 5px;
            left: 5px; */
            box-shadow: rgb(211, 210, 210) 5px 5px 15px 2px;
            /* box-shadow: darkgrey 4px 4px 12px 2px ; */
        }

        .card:focus {
            /* bottom: 5px;
            left: 5px; */
            box-shadow: rgb(120, 129, 255) 5px 5px 15px 2px;
        }

        /* .card_01{

} */
        .card_01::-webkit-scrollbar-thumb {
            box-shadow: inset 0 0 6px rgb(0 0 0 / 30%);
        }

        .capsule {
            position: relative;
            padding: 0.5em 1.2em;
            font-size: 1em;
            color: white;
            background-color: #5a93fc;
            border-radius: 2em;
            border: 0px saddlebrown solid;
            box-shadow: rgb(62, 91, 252) 2px 2px 8px 1px;
            outline: none;
            cursor: pointer;
        }

        .capsule:active {
            top: 0.2em;
            box-shadow: rgb(113, 135, 255) 1px 1px 6px 1px;
        }

        .capsule:hover {
            background-color: #4284ff;
            font-weight: bold;
            text-shadow: 0px 0px 5px #ffffff;
        }

        .frame {
            border: 1px rgb(255, 244, 244) solid;

            box-shadow: inset 3px 6px 10px rgb(231, 223, 223);
            border-radius: 2em;
            padding: 1.5em;
            outline: none;

        }

        .frame:focus {
            box-shadow: inset 3px 6px 10px rgb(197, 186, 186);
            /* 1px 1px 10px 3px rgb(79, 140, 255); */
        }
    </style>
</head>


<body>
    <div style="padding: 2em;">
        输入数据:
        <input type="text" value="7" id="input" class="frame" placeholder="请输入大于7的数">
        <input type="button" value="计算" id="start" class="capsule">
        <br>
        <textarea name="" id="output" cols="30" rows="10" class="card" disabled placeholder="计算结果"></textarea>
    </div>
    <script>
        function f1(n) {
            n = parseInt(n);
            if (n < 7) {
                return;
            }
            var result = [];
            var tempY, tempX, tempZ, tempF, flag = false, z = 0, F;
            for (var i = 7; i <= n; i += 2) {
                tempF = i * i;
                for (var j = 2; j < i; j++) {
                    tempX = j * j
                    for (var k = 2; k < i; k++) {
                        tempY = k * k;
                        for (var f = 2; f < i; f++) {
                            tempZ = f * f;
                            if (tempF == tempZ + tempX + tempY) {
                                F = sort([j, k, f], 1);
                                // result[z] = i + '²=' + k + '²+' + j + '²+' + f + '²,' + k + '+' + j + '+' + f + '=' + (j + k + f);
                                result[z] = i + '²=' + F[0] + '²+' + F[1] + '²+' + F[2] + '²,' + F[0] + '+' + F[1] + '+' + F[2] + '=' + (j + k + f);
                                z++;
                                flag = true;
                                break;
                            }
                        }
                        if (flag) {
                            break;
                        }
                    }
                    if (flag) {
                        break;
                    }
                }
                flag = false;
            }
            return result;
        }
        function sort(arr, zt) {
            var res = [], temp;
            if (zt == 0) {//顺序
                for (var i = 0; i < arr.length - 1; i++) {
                    for (var j = 0; j < arr.length - i; j++) {
                        if (arr[j] > arr[j + 1]) {
                            temp = arr[j];
                            arr[j] = arr[j + 1];
                            arr[j + 1] = temp;
                        }
                    }
                }
            } else {//倒序
                for (var i = 0; i < arr.length - 1; i++) {
                    for (var j = 0; j < arr.length - i; j++) {
                        if (arr[j] < arr[j + 1]) {
                            temp = arr[j];
                            arr[j] = arr[j + 1];
                            arr[j + 1] = temp;
                        }
                    }
                }
            }
            return arr;
        }
        document.getElementById('start').onclick = function () {
            var res = f1(document.getElementById('input').value);
            var result = '计算结果如下:\n\r\t'
            // console.log(res);
            for (var i = 0; i < res.length; i++) {
                result += res[i] + '\n\r\t';
            }
            document.getElementById('output').value = result
        }
    </script>
</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值