Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Най-бързо решение

Featured Replies

Здравейте, имам въпрос относно следната задача:дадени са определен брой еднолевки, двулевки и петолевки.Дадена е и една цена. Броевете и цената се въвеждат от клавиатурата.Искам да разбера дали има по-лесен начин за решаване на задачата: съществува ли комбинация от наличните пари така, че да може да платим сумата без да се налага да ни връщат. Въпросът ми е дали има по-бърз начин от 3 цикъла ( един в друг). Евентуално, ако има- може ли и да се изведе тази тройка ( пак по по- лесен начин ). Питам това, тъй като съм чувал, че ложело и без цикъл да стане ( поне първата задача) , ама ако е така нямам никаква идея как ще се реализира това. Благодаря предварително.

Ами естествено, че може без цикъл. Не мога да си представя и откъде ти е дошла идеята за цикъл. Ти ако трябваше да връщаш пари, как щеше да постъпиш?По принцип , трябва да връщаш винаги големи банкноти, ако може за да имаш повече възможности после. за целта:делиш сумата на 5 (да видиш колко банкноти по 5 да върнеш)ако имаш толкова, отбелязваш си и намираш остатъка. Ако не, отбелязваш си всичките банкноти по 5 и пак намираш колко остава да върнеш.Ако има остатък, повтаряш процедурата и с двулевките върху останалите пари.Остатъка след двулевките, го плащаш с еднолевки. Ако нямаш достатъчно, задачата няма решение.

  • Автор

Е тогава например:Имаме 3 петолевки и 3 двулевки. Искаме да платим 16 лева. Така ще взема петолевките т.е. 15 лева и искам да платя още левче.Да, но това няма как да стане.Действително, обаче мога да платя с 2 петолевки и 3 двулевки, които имам в конкретния случай. Или може би не съм разбрал правилно предложения от вас метод? Сега ще ще се пробвам и аз да драсна нещо, дано да стане.

Е тогава например:Имаме 3 петолевки и 3 двулевки. Искаме да платим 16 лева. Така ще взема петолевките т.е. 15 лева и искам да платя още левче.Да, но това няма как да стане.Действително, обаче мога да платя с 2 петолевки и 3 двулевки, които имам в конкретния случай. Или може би не съм разбрал правилно предложения от вас метод? Сега ще ще се пробвам и аз да драсна нещо, дано да стане.

Шах с пешката :)Еми, така е - бързата работа...Какво ще кажеш за следната корекция: Горното плюс, ако нямаш еднолевки, ползваш максималният възможен брой петолевки със същата четност, както сумата която искаме да постигнем. Това е много специфичен, направо нагласен метод, но и условието е много конкретно - обосновка: със сигурност имаме само 3 вида банкноти и само с двулевките може да стане "издънка" по метода който предложих по-рано, ако изобщо имаме решение.Нещо такова: 
void check_sum(int needed_sum, int ones, int twos, int fives){    int num_5, num_2;    num_5 = needed_sum / 5;    if (num_5 > fives)        num_5 = fives;    if (ones == 0)   	 num_5 -= ((needed_sum % 2) ^ (num_5 % 2));    needed_sum -= num_5 * 5;    num_2 = needed_sum / 2;    if(num_2 > twos)   	 num_2 = twos;    needed_sum -= num_2 * 2;    if (needed_sum > ones) {	    printf("No solution");        return;    } else {	    printf("Solution: fives: %d, twos: %d, ones: %dn", num_5, num_2, needed_sum);        return;    }}
Иначе, ако имаме повече видове банкноти (и/или монети), ще трябва цикъл или рекурсия вече.

Редактирано от flare (преглед на промените)

  • 3 седмици по-късно...
  • Автор

Благодаря ви много. Можете ли само да ми кажете какво е това значе " ^ " , че не го бях срещал до сега.

Благодаря ви много. Можете ли само да ми кажете какво е това значе " ^ " , че не го бях срещал до сега.

http://www.cs.mun.ca/~michael/c/op.html

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.