Автор | Сообщение |
|
Отправлено: 07.10.21 20:04. Заголовок: задание 6
Здравствуйте, в тексте программы опечатка? var x:integer; begin readln(x); while x < 100 do begin if x mod 2 < 1 x := x div 2 else x := 3*x + 1 end; writeln(x); end. Ветка " да" отсутствует или я не права?
|
|
|
Ответов - 8
[только новые]
|
|
|
Отправлено: 08.10.21 19:59. Заголовок: это задача 143, очен..
это задача 143, очень интересно, почему не выводит результат обработав числа меньше 100, не всегда выводит. первое нашла 15, потом 23, объяснить не могу
|
|
|
|
| Администратор
|
Сообщение: 2936
|
|
Отправлено: 09.10.21 20:41. Заголовок: vin пишет: первое на..
vin пишет: цитата: | первое нашла 15, потом 23, объяснить не могу |
|
Это задача на написание программы. Объяснять не требуется. А дополнительную информацию, если интересно, можно посмотреть здесь.
|
|
|
|
Отправлено: 10.10.21 18:25. Заголовок: спасибо, программно ..
спасибо, программно у меня не получилось(( var x, k:integer; begin //readln(x); for k:=1 to 100 do begin while x < 100 do begin if x mod 2 < 1 then x := x div 2 else x := 3*x + 1; end; writeln(x, k); end; end.
|
|
|
|
| Администратор
|
Сообщение: 2940
|
|
Отправлено: 10.10.21 18:27. Заголовок: vin пишет: программн..
vin пишет: цитата: | программно у меня не получилось(( |
|
Там может быть 1) зацикливание или 2) завершение цикла. Чтобы ловить зацикливание, введите счетчик итераций цикла и выходите через, скажем, 1000 итераций.
|
|
|
|
Отправлено: 11.10.21 17:41. Заголовок: спасибо за идею, даж..
спасибо за идею, даже не додумалась
|
|
|
|
Отправлено: 21.10.21 02:02. Заголовок: k=0 for x0 in range..
k=0 for x0 in range(1,100): x=x0 fl=0 while (x<100): if x % 2 <1: x=x//2 else: x = 3*x + 1 k += 1 if k>1000: fl=1 break if fl==0: print(x0,' ',x) Подскажите, пожалуйста, что не так
|
|
|
|
| Администратор
|
Сообщение: 2969
|
|
Отправлено: 21.10.21 20:08. Заголовок: Счётчик k нужно обну..
Счётчик k нужно обнулять для каждого числа (непосредственно перед while).
|
|
|
|
Отправлено: 21.10.21 23:14. Заголовок: Спасибо большое. Пог..
Спасибо большое. Погуляла, пересмотрела программу и получила.
|
|
|
|