35 , на c++. я решаю : мишка лимак хочет стать самым большим медведем, ну, или хотя бы стать больше своего старшего брата боба. сейчас вес лимака равен a, а вес боба равен b. гарантируется, что вес лимака меньше или равен весу боба. лимак ест много, и его вес утраивается каждый год, а вес боба удваивается каждый год. через сколько целых лет лимак станет строго больше (т. е. будет весить строго больше) боба? входные данные в единственной строке находятся два целых числа a и b (1 ≤ a ≤ b ≤ 10) — веса лимака и боба соответственно. выходные данные выведите одно целое число — через сколько целых лет лимак станет строго больше боба. примеры: входные данные 4 7 выходные данные 2 входные данные 4 9 выходные данные 3 входные данные 1 1 выходные данные 1 примечание: в первом примере изначально вес лимака равен 4, а вес боба — 7. через год их веса равны 4·3 = 12 и 7·2 = 14 соответственно (один вес утроился, а второй удвоился). лимак все еще не больше боба. через два года их веса равны 36 и 28, то есть вес лимака больше, чем вес боба. лимак стал больше боба через два года, поэтому вы должны вывести 2. во втором примере веса лимака и боба в последующие года равны: 12 и 18, затем 36 и 36, и наконец 108 и 72 (через три года). ответ равен 3. помните, что лимак хочет стать строго больше боба, и его не устроят равные веса. в третьем примере лимак станет больше боба через один год, их веса будут равны 3 и 2 соответственно. мой код: #include using namespace std; int main() { int a, b, c=0; a< =b; cin > > a > > b; while (a> b){ a=a*3; b=b*2; c=с+1; } cout < < c; return 0; } , что не так?

daanya666 daanya666    2   17.06.2019 10:13    76

Ответы
ZoiTema ZoiTema  28.12.2023 17:20
Код содержит две ошибки:

1) Ошибка в написании переменной 'c'. В вашем коде переменная называется 'с' (латинское "с"), а нужно использовать 'c' (латинское "си").

2) Ошибка в условии цикла while. У вас написано a > b, но по условию задачи должно быть a <= b. Иначе цикл не выполнится, если вес лимака изначально меньше или равен весу боба.

Ниже представлен исправленный код:

#include
using namespace std;

int main() {
int a, b, c=0;
cin >> a >> b;

while (a <= b) {
a *= 3;
b *= 2;
c++;
}

cout << c;
return 0;
}

Обратите внимание, что в строке "a *= 3" значит "a = a * 3", а в строке "b *= 2" значит "b = b * 2". Это сокращенная запись.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика