Skip to content

Instantly share code, notes, and snippets.

@Le-Fu
Created May 22, 2017 09:00
Show Gist options
  • Select an option

  • Save Le-Fu/0c8a4e0dc157e5c24cd8af5733ab74ce to your computer and use it in GitHub Desktop.

Select an option

Save Le-Fu/0c8a4e0dc157e5c24cd8af5733ab74ce to your computer and use it in GitHub Desktop.
JS Bin // source http://jsbin.com/wuxifab
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<script id="jsbin-javascript">
//判断一个数字是否为素数
var isPrime = function (num) {
if (typeof num === 'number' && num > 1) {
for (var i = 2; i < num; i++) {
if (num % i === 0) {
return false;
}
}
return true;
}
return false;
}
var data = {
"value": null,
"left": {
"value": null,
"left": {
"value": 1,
"left": null,
"right": null
},
"right": {
"value": null,
"left": {
"value": 7,
"left": null,
"right": null
},
"right": {
"value": 13,
"left": null,
"right": null
}
}
},
"right": {
"value": null,
"left": {
"value": null,
"left": {
"value": 3,
"left": null,
"right": null
},
"right": {
"value": 5,
"left": null,
"right": null
}
},
"right": {
"value": 3,
"left": null,
"right": null
}
}
};
var sumPrime = function (data) {
data.value = (isPrime(data.left.value) ? data.left.value : 0) + (isPrime(data.right.value) ? data.right.value : 0);
};
// 改变data的内的value
var changeData = function fn(data) {
if (!data.value) {
fn(data.left);
fn(data.right);
// a:使所有非叶子节点的value等于值为非素数子节点的值之和(假如子节点的值为2和3,则和为5;假如子节点值为3和4,则和为3)
sumPrime(data);
}
};
var printPrime = function (data) {
changeData(data);
// 打印所有素数,b:打印其中所有素数
(function fn(data) {
if (data) {
fn(data.left);
fn(data.right);
isPrime(data.value) ? console.log(data.value) : null;
}
})(data);
};
printPrime(data);
</script>
<script id="jsbin-source-javascript" type="text/javascript">//判断一个数字是否为素数
var isPrime = function (num) {
if (typeof num === 'number' && num > 1) {
for (var i = 2; i < num; i++) {
if (num % i === 0) {
return false;
}
}
return true;
}
return false;
}
var data = {
"value": null,
"left": {
"value": null,
"left": {
"value": 1,
"left": null,
"right": null
},
"right": {
"value": null,
"left": {
"value": 7,
"left": null,
"right": null
},
"right": {
"value": 13,
"left": null,
"right": null
}
}
},
"right": {
"value": null,
"left": {
"value": null,
"left": {
"value": 3,
"left": null,
"right": null
},
"right": {
"value": 5,
"left": null,
"right": null
}
},
"right": {
"value": 3,
"left": null,
"right": null
}
}
};
var sumPrime = function (data) {
data.value = (isPrime(data.left.value) ? data.left.value : 0) + (isPrime(data.right.value) ? data.right.value : 0);
};
// 改变data的内的value
var changeData = function fn(data) {
if (!data.value) {
fn(data.left);
fn(data.right);
// a:使所有非叶子节点的value等于值为非素数子节点的值之和(假如子节点的值为2和3,则和为5;假如子节点值为3和4,则和为3)
sumPrime(data);
}
};
var printPrime = function (data) {
changeData(data);
// 打印所有素数,b:打印其中所有素数
(function fn(data) {
if (data) {
fn(data.left);
fn(data.right);
isPrime(data.value) ? console.log(data.value) : null;
}
})(data);
};
printPrime(data);</script></body>
</html>
//判断一个数字是否为素数
var isPrime = function (num) {
if (typeof num === 'number' && num > 1) {
for (var i = 2; i < num; i++) {
if (num % i === 0) {
return false;
}
}
return true;
}
return false;
}
var data = {
"value": null,
"left": {
"value": null,
"left": {
"value": 1,
"left": null,
"right": null
},
"right": {
"value": null,
"left": {
"value": 7,
"left": null,
"right": null
},
"right": {
"value": 13,
"left": null,
"right": null
}
}
},
"right": {
"value": null,
"left": {
"value": null,
"left": {
"value": 3,
"left": null,
"right": null
},
"right": {
"value": 5,
"left": null,
"right": null
}
},
"right": {
"value": 3,
"left": null,
"right": null
}
}
};
var sumPrime = function (data) {
data.value = (isPrime(data.left.value) ? data.left.value : 0) + (isPrime(data.right.value) ? data.right.value : 0);
};
// 改变data的内的value
var changeData = function fn(data) {
if (!data.value) {
fn(data.left);
fn(data.right);
// a:使所有非叶子节点的value等于值为非素数子节点的值之和(假如子节点的值为2和3,则和为5;假如子节点值为3和4,则和为3)
sumPrime(data);
}
};
var printPrime = function (data) {
changeData(data);
// 打印所有素数,b:打印其中所有素数
(function fn(data) {
if (data) {
fn(data.left);
fn(data.right);
isPrime(data.value) ? console.log(data.value) : null;
}
})(data);
};
printPrime(data);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment