Този https://jsfiddle.net/azcbrmkf/ код ми даде 20 точки. Ето условието https://learn.telerikacademy.com/mod/page/view.php?id=5309.
Може ли помощ?
Този https://jsfiddle.net/azcbrmkf/ код ми даде 20 точки. Ето условието https://learn.telerikacademy.com/mod/page/view.php?id=5309.
Може ли помощ?
Първо: Ще те посъветвам да пускаш for цикъл до
let n = +gets();
Когато го пускаш до input.lenght може да ти създаде проблеми.
Второ: Проблемът ти идва от самото пресмятане на отстъпката.
Трябва да вземеш елемент и да го разделиш на 100 и след това умножаваш по 35.
print((+gets()/100*35).toFixed(2));
По този начин, с тази формула “input[i] * 0.35” резултат ти е невалиден защото .toFixed(2) закръгля резултат ако имаш повече от две числа след запетаята. Защо го закръгля грешно по този начин:
Можеш да прочетеш ето тук: https://www.techonthenet.com/js/number_tofixed.php
Не разбрах първата част от отговора ти? Ако пусна цикъла по n(for (var i = 1; i < n; i++)), n е само първият инпут.
Здравей,
предполагам, че идеята на колегата е да вземеш първото число n и да завъртиш for loop от 0 до n, в чиято логика да пълниш примерно един масив. Аз бих постъпил така. След това завърташ втори for по дължината на получения масив и следователно прилагаш останалата логика. За пресмятането на отстъпката колегата е прав.
Здравей, може ли примерен код за да видя как се завърта такъв loop и пълни масив по този начин, защото не успях сам?
Здравей,
https://pastebin.com/pddA6Fx8 това е примерния код. Идеята му е, че първото число, което имаш на входа го записваш в n с +gets(). Така for цикъла ще се завърти n пъти и на всяко завъртане добявяш едно число в края на масива отново с +gets().
var n = +gets(); // За това, просто като съвет!
for (let i = 1; i <= n; i++)
{
var result = (+gets()/100*35);
print(result.toFixed(2));
};
Имах предвид, да изкараш n като променлива до която ще се върти for-a, а не да използваш input.length и да започваш for-a от 1. В условието ти пише, че на първият ред ще получиш броя следващи редове.
Ако имаш
let input =
[
2,
50,
40
];
input.length ще е равно на 3, а for-a трябва да ти е до 2.
Първото число показва колко реда следват.
Затова вземаш първото число
var n = +gets()
Така вземаш първото число и пускаш for до него.
for (let i = 1; i <= n; i++)
Сега в input ти остава 20 и 50 само двете числа които ще смяташ
и на всяка итерация на for-a вземаш следващото число с +gets()
И все пак не забравяй да обърнеш повече внимание на алгоритъма за решаването на задача и да прочетеш този материал за toFixed() който ти постнах.
Ще ти е полезен доста.
По доста сложен начин си го направил ама щом работи не го бараме