04.Cake - задача от изпит по Programming Basics на 3 септември.
Здравейте бих се радвал да ми пратите решението на задачата защото имах доста затруднения с нея.
Ето го и условието:
Задача 4. Торта
Поканен сте на 30-тия рожден ден на Кендрик Ламар, но като част от организацията. Той иска да покани много гости и планира да вземе огромна торта. Иска да знае обаче колко парчета могат да се вземат от нея. Всеки път когато някой си вземе, трябва да се отчита, че едно или повече парчета са взети. Така трябва да се продължи докато не свърши тортата или докато гостите не спрат да си взимат.
Напишете програма, която да изчислява броя останали парчета. Ще получите размерите на тортата и след това на всеки ред, докато не получите командата STOP или докато не свърши тортата (pieces < 0), ще получавате цяло число, равно на взетите парчета. Накрая трябва да се отпечата колко парчета са останали или, че са свършили.
Note: Тортата е с правоъгълна форма. Едно парче е с размер 1х1.
Вход
Потребителят въвежда следните данни на отделни редове:
- Широчина на тортата – цяло число в интервала [1...1000];
- Дължина на тортата – цяло число в интервала [1...1000];
- На следващите редове (докато не получите командата STOP) – брой парчета, които се взимат от тортата – цели числа в интервала [1...1000];
Изход
Да се отпечата на конзолата един от следните редове:
- {брой парчета} pieces are left." - ако стигнете до STOP и не се свършили парчетата торта
- No more cake left! You need {брой недостигащи парчета} pieces more.
Благодаря ви, предварително. :D
Ето едно работещо решение на c# и от мен с използването на for цикъл.
https://pastebin.com/QfrDFx8f
Malko преработих варианта ти. Логиката е вярна, но когато правиш изчислението за остатъка се обърква. https://dotnetfiddle.net/iRtm0W
using System;
public class Program
{
public static void Main()
{
var n1 = int.Parse(Console.ReadLine());
var n2 = int.Parse(Console.ReadLine());
var sum = n1*n2;
while(sum>=0)
{
var n3 = Console.ReadLine().ToLower();
if(n3 == "stop")
{
break;
}
sum -= int.Parse(n3);
}
if(sum >= 0)
{
Console.WriteLine("{0} pieces are left.",sum);
}
else
{
Console.WriteLine("No more cake left! You need {0} pieces more.", sum*-1);
}
}
}