-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsaurav_treeTask.html
77 lines (67 loc) · 1.71 KB
/
saurav_treeTask.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
<script>
/*
1
2 3
4 5 6 7
8 9 10 11 12 13 14 15
ith level = 2 ^ i elements
*/
var data = [];
var numReg = /^\d+$/;
function checkNum(inp) {
//----------------------------------------Check Number--------------------------------------
var num = prompt(inp);
if (!num.match(numReg)) {
num = checkNum(inp);
}
return parseInt(num);
}
function addData(i, num) {
// ---------------------------------------Inserting data-----------------------------------------
if (i <= num) {
data.push(" Saurav" + i);
i++;
addData(i, num);
}
return;
}
function names(nameStart, nameEnd, output, num) {
// --------------------------------------Names from the data------------------------------------
if (nameStart < nameEnd) {
output += "," + data[nameStart - 1];
nameStart++;
if (nameStart > num) {
return output;
}
output = names(nameStart, nameEnd, output, num);
}
return output;
}
function levels(levelStart, levelEnd, num) {
// ---------------------------------------Level for the data------------------------------------
if (levelStart <= levelEnd) {
var outputString = "";
var result = names(
2 ** levelStart,
2 * 2 ** levelStart,
outputString,
num
);
document.write("Level" + "-" + levelStart + "-" + result + "<br/>");
levelStart++;
levels(levelStart, levelEnd, num);
}
}
function main() {
// --------------------------------------Main function----------------------------------------
var num = checkNum("How many names you want to add: ");
if (num < 2) {
alert("Enter the count more than 1 !!!");
} else {
var level = Math.log2(num);
addData(1, num);
levels(0, level, num);
}
}
main();
</script>