/
index.html
78 lines (64 loc) · 1.75 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>콩 수열 생성기</title>
<style>
* { font-family: 'Malgun Gothic', sans-serif; }
h1 { font-size: 20px; }
input { font-size: 30px; width: 200px; }
#out { font-size: 80px; }
</style>
</head>
<body>
<script>
var sols = null;
function load_sols() {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
sols = JSON.parse(xhr.responseText);
num_g.onkeyup();
};
xhr.open('GET', 'sols.json');
xhr.send();
}
load_sols();
</script>
<h1>콩수 생성기</h1>
<input type="number" id="num">
<div id="out"></div>
<script>
var num_g = document.getElementById('num');
var out_g = document.getElementById('out');
function get_direct_sol(num) {
var sol = '?';
for (var i=0;i<=2;i++) {
if (sols[num - i]) {
var cur_sol = sols[num - i] + (i ? '+' + sols[i] : '');
console.log(num, cur_sol);
if (sol == '?' || sol.length > cur_sol.length) {
sol = cur_sol;
}
}
}
return sol;
}
function get_sol(num) {
if (num < 0) return '-' + '(' + get_sol(-num) + ')';
if (num == 1000) return get_direct_sol(num);
var res = get_direct_sol(num % 1000);
var remaining = parseInt(num / 1000);
if (remaining) res += '+' + '(' + get_sol(remaining) + ')' + '*' + '(' + get_direct_sol(1000) + ')';
return res;
}
function update_out(num) {
if (!sols) return;
out.innerHTML = num + ' = ' + get_sol(num);
}
num_g.onkeyup = function(ev) {
update_out(~~(this.value));
};
num_g.value = ~~(Math.random() * 1000);
</script>
</body>
</html>