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>