Loading...
bulgaria_mitko avatar bulgaria_mitko 133 Точки

[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!

2
JavaScript Fundamentals
ppbaev avatar ppbaev 157 Точки

На мен ми реши проблема да парсна входа към числа преди да го ползвам в цикли: 

var start = parseInt(input[0]);

var end = parseInt(input[1]);

6
DiyanTonchev92 avatar DiyanTonchev92 231 Точки

Това наистина ми реши проблема. WTF?!?! laugh 
Благодаря много!

0
20/01/2016 13:14:06
npaunov avatar npaunov 51 Точки

И на мен ми се случи точно същото и не можех да разбера защо! Супер решение!
Единственото, което мога да предположа, е че в тестовете има по добавен един space, който чупи изхода.

0
petrov_desislav avatar petrov_desislav 2 Точки

И от мен едно благодаря! На мен без парсването ми даваше 40 точки.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.