Регистрация не е нужна, освен при създаване на тема в "Задача на седмицата".

Правилно ли съм решил задачите?

Правилно ли съм решил задачите?

Мнениеот Гост » 21 Юли 2021, 10:50

Решавам следните задачи, които съм написал на Python. Моля ви кажете ми дали съм ги решил вярно?

Задача: учебна зала

Учебна зала има правоъгълен размер l на w метра, без колони във вътрешността си. Залата е разделена на две части – лява и дясна, с коридор - приблизително по средата. В лявата и в дясната част има редици с бюра. В задната част на залата има голяма входна врата. В предната част на залата има катедра с подиум за преподавателя. Едно работно място заема 70 на 120 cm (маса с размер 70 на 40 cm + място за стол и преминаване с размер 70 на 80 cm). Коридорът е широк поне 100 cm. Изчислено е, че заради входната врата (която е с отвор 160 cm) се губи точно 1 работно място, а заради катедрата (която е с размер 160 на 120 cm) се губят точно 2 работни места. Напишете програма, която въвежда размери на учебната зала и изчислява броя работни места в нея при описаното разположение (вж. фигурата).
Входни данни

От конзолата се четат 2 числа, по едно на ред: l (дължина в метри) и w (широчина в метри).

Ограничения: 3 ≤ w ≤ l ≤ 100.
Изходни данни

Да се отпечата на конзолата едно цяло число: броят места в учебната зала.

ПРИМЕРИ

ВХОД
15
8.9

ИЗХОД
129

ВХОД
8.4
5.2

ИЗХОД
39

Ето го кода ми на тази задача:

Код: Избери целия код
l = float(input())
w = float(input())
cml = l * 100
cmw = w * 100
result = int(cml / 120) * int((cmw - 100) / 70) - 3
print(result)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Задача: зеленчукова борса

Градинар продава реколтата от градината си на зеленчуковата борса. Продава зеленчуци за N лева на килограм и плодове за M лева за килограм. Напишете програма, която да пресмята приходите от реколтата в евро (ако приемем, че едно евро е равно на 1.94 лв.).
Входни данни

От конзолата се четат 4 числа, по едно на ред:

Първи ред – Цена за килограм зеленчуци – число с плаваща запетая.
Втори ред – Цена за килограм плодове – число с плаваща запетая.
Трети ред – Общо килограми на зеленчуците – цяло число.
Четвърти ред – Общо килограми на плодовете – цяло число.

Ограничения: Всички числа ще са в интервала от 0.00 до 1000.00
Изходни данни

Да се отпечата на конзолата едно число с плаваща запетая: приходите от всички плодове и зеленчуци в евро.

ПРИМЕРИ

ВХОД
0.194
19.4
10
10

ИЗХОД
101

ВХОД
1.5
2.5
10
10

ИЗХОД
20.6185567010309

Ето моя код по задачата:

Код: Избери целия код
cena_zelenchuci = float(input())
cena_plodove = float(input())
kg_zelenchuci = int(input())
kg_plodove = int(input())
bg = cena_zelenchuci * kg_zelenchuci + cena_plodove * kg_plodove
print(bg / 1.94)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ЕДНА СЪСТЕЗАТЕЛСКА ЗАДАЧА

Ели неочаквано се оказа въвлечена в последния турнир Mortal Kombat. Това е състезание по бойни изкуства, в което участниците се бият до смърт един срещу друг. Ели знае, че в турнира участват N по-добри от нея бойци и MM по-слаби такива. Тя ще загуби всяка битка срещу по-силен противник и ще спечели всяка срещу по-слаб. Ако двама противника от една и съща класа (тоест двама по-силни или двама по-слаби) се бият един срещу друг, макар и малко странно, и двамата загиват. Разбира се, ако по-силен от нея противник се бие срещу по-слаб такъв, то той ще спечели и оцелее, докато по-слабият ще загине.

За всяка битка двама от все още живите участници биват избрани на произволен принцип с равна вероятност. В края на битката или един или нула от тях остават живи, спрямо гореописаните правила. Изчислете какъв е шансът Ели да оцелее и спечели турнира.

Вход
На единствен ред на стандартния вход са зададени две цели числа N и M – съответно броят по-силни и по-слаби от Ели участници.

Изход
На стандартния изход изпечатайте едно единствено число с плаваща запетая между 0 и 1, включително - шансът Ели да спечели турнира и оцелее. Отговорът ще бъде зачетен за верен при абсолютна или релативна разлика, по-малка от 10-9.

Ограничения
1 ≤ N, M ≤ 100

Примерен Вход Примерен Изход
2 1 0.333333333
42 13 0.023255814

В първия примерен тест в турнира участват общо 4 души – Ели, двама по-силни противника и един по-слаб. Ако първата битка е между двамата по-силни, то и двамата загиват, оставяйки Ели срещу по-слабия. Така тя със сигурност печели и оцелява, като шансовете за това са 1/6. В противен случай тя ще оцелее след първия кръг единствено ако по-слабият участник участва в този кръг, шансовете за което са 1/2. След това остават живи единствено Ели и двамата по-силни противници, в който случай тя би оцеляла единствено ако те се бият един срещу друг. Шансът за това е 1/3 (ако вече по-слабият участник е загинал). Така шансовете за оцеляване на Ели през целия турнир са 1/6 + 1/2 * 1/3 = 1/3.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Тази задача е състезателска. Не разбирам къде ми е грешката? Имам 80 точки. Ето кода ми, който е на C++:

Код: Избери целия код
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, m;

    cin >> n >> m;

    double answer = (double)1 / (n + 1);

    cout << fixed << setprecision(9) << (double)answer << endl;

    return 0;
}


Върви за примерите. Може ли да ми помогнете?
Знам, че има излишни неща в кодовете ми, но последната задача я мъча от много време. Постоянно променям кода си, но не се получават всички верни тестови примери.

Благодаря на всички, които ще се отзоват да ми помогнат.
Гост
 

Re: Правилно ли съм решил задачите?

Мнениеот Гост » 22 Юли 2021, 11:02

Моля ви! Помогнете ми със задачите. Ако мислите по тях пишете за да знам, че скоро ще ми помогнете.
Гост
 

Re: Правилно ли съм решил задачите?

Мнениеот Гост » 26 Юли 2021, 14:40

Състезателската задача е Ad Hoc. Тоест трябва да се досетиш нещо.
Гост
 


Назад към C#, Java



Кой е на линия

Регистрирани потребители: Davids, Google [Bot]

Форум за математика(архив)