[Exam] Build a Table, 3-ти и 10-ти ми излизат грешни, но защо?
Кода, който използвам за решаване на задачата е: https://judge.softuni.bg/Contests/Practice/Index/19#0
function buildTable(input) {
function isFib(val) {
var prev = 0;
var curr = 1;
while(prev<=val){
if(prev == val){
return "yes";
}
curr = prev + curr;
prev = curr - prev;
}
return "no";
}
var startNum = input[0];
var endNum = input[1];
console.log("<table>");
console.log("<tr><th>Num</th><th>Square</th><th>Fib</th></tr>");
for (var i = startNum; i <= endNum; i++) {
console.log("<tr><td>" + i + "</td><td>" + (i * i) + "</td><td>" + isFib(i) + "</td></tr>");
}
console.log("</table>");
}
buildTable([5, 10]);
buildTable([999999, 1000000]);
това, което получава за резултат на 3-ти пример:
<table>
<tr><th>Num</th><th>Square</th><th>Fib</th></tr>
<tr><td>5</td><td>25</td><td>yes</td></tr>
<tr><td>6</td><td>36</td><td>no</td></tr>
<tr><td>7</td><td>49</td><td>no</td></tr>
<tr><td>8</td><td>64</td><td>yes</td></tr>
<tr><td>9</td><td>81</td><td>no</td></tr>
<tr><td>10</td><td>100</td><td>no</td></tr>
</table>
това, което виждам като резултат, който трябва да ми излезе е:
<table>
<tr><th>Num</th><th>Square</th><th>Fib</th></tr>
<tr><td>5</td><td>25</td><td>yes</td></tr>
<tr><td>6</td><td>36</td><td>no</td></tr>
<tr><td>7</td><td>49</td><td>no</td></tr>
<tr><td>8</td><td>64</td><td>yes</td></tr>
<tr><td>9</td><td>81</td><td>no</td></tr>
<tr><td>10</td><td>100</td><td>no</td></tr>
</table>
и на 10-ти, моя изход е:
<table>
<tr><th>Num</th><th>Square</th><th>Fib</th></tr>
<tr><td>999999</td><td>999998000001</td><td>no</td></tr>
<tr><td>1000000</td><td>1000000000000</td><td>no</td></tr>
</table>
изхода, който се очаква от джъджа е:
<table>
<tr><th>Num</th><th>Square</th><th>Fib</th></tr>
<tr><td>999999</td><td>999998000001</td><td>no</td></tr>
<tr><td>1000000</td><td>1000000000000</td><td>no</td></tr>
</table>
та, въпроса ми е къде е проблема, защото на мен ми се струват като да са 1:1!