Проблем със задача Бонус точки?
На JS ми казва че не работи при тези стойности
А кодът е следният >> https://pastebin.com/BwTD97vK
На JS ми казва че не работи при тези стойности
А кодът е следният >> https://pastebin.com/BwTD97vK
Здравей. Твоето решение е на C#. Искам да ти обясня нещо: Писал си
.................
else if (num > 100)
{
bonusScore = num * 0.20;
}
else if (num > 1000)
{
bonusScore = num * 0.10;
}
....................... Когато num>100 това значи, че се приемат стойности по-големи от 100, без да има посавена някаква горна граница. С други думи изискването num>1000 се съдържа в изискването num>100. За това трябва да се постави горна граница т.е. записът трябва да бъде така:
else if (num > 100 && num<=1000)
{
bonusScore = num * 0.20;
}
else if (num > 1000)
{
bonusScore = num * 0.10;
}
Освен това на bonusScore му даваш тип double и първоначална стойност 0, а не 0.0. Това е твоят код, променен така, че да дава 100 точки:
https://pastebin.com/EK9TZM51
Не мисля, че това е JS.
Тук въведох малка промяна в кода при конструкцията if-else условието за изпълнение на бонус при точки които са повече от 1000 нямаше как да се изпълни понеже винаги се спираше на по горната проверка.
https://gist.github.com/BoyanYordanov01021108/10fa2077406b9ae4a606d2371b8b03d2
Още един вариант за решение - https://pastebin.com/hh9Wmy8L
Трябва да почнеш с >1000 защото при >100 не можеш да влвзеш в >1000 и ти дава бонус 20%, а не 10%.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BonusPoints
{
class Program
{
static void Main(string[] args)
{
double number = double.Parse(Console.ReadLine());
double bonusPercents = 0;
double bonusFromLastDigitOrEven = 0;
if (number <= 100)
{
bonusPercents += 5;
}
else if (number > 100 && number <= 1000)
{
bonusPercents = (number * 0.2);
}
else if (number > 1000)
{
bonusPercents = (number * 0.1);
}
if (number % 2 == 0)
{
bonusFromLastDigitOrEven = 1;
}
else if (number % 10 == 5)
{
bonusFromLastDigitOrEven = 2;
}
Console.WriteLine(bonusPercents + bonusFromLastDigitOrEven);
Console.WriteLine(bonusFromLastDigitOrEven + bonusPercents + number);
}
}
}
Но като гледаш решенията ги дебъгваи.
Защото иначе нищо не се научава.
Благодаря много, целият проблем е че трябваше да огранича if-а с 20-те % до <= 1000 :)
П.С. имам предвид JS - Judge System, но явно не е правилно да го използвам че се бъркате :)