Опять таки извиняюсь за свой тупеший вопрос, и за то что отнимаю ваше драгоценнейшее время:
можете написать програмку (на паскале, си шарп, на чём вам удобно) вот мы ввели число, и если это число не чётное то мы умножаем его на 3 и прибавляем 1, если число чётное то делим на 2. И эти операции должны продолжаться до тех пор пока не получится единица
Дополненда, я идиот
program ffm; var k,l,n:int64; begin readln(n); l:=0; while n<>1 do begin if (n mod 2) then n:=n div 2 else n:=3*n+1; l:=l+1 end; writeln(l) end.
{Из чисел до 10 самое большее число шагов у 9- 19, из чисел до 100 у 97- 118, у чисел до 1000 у 871- 178, до 10т. у 6171- 261, до 100т. у 77031- 350, до миллиона у 837799- 524, до 10 миллионов у 8400511- 685, а дальше считать мне надоело! }
примерно так
int i;for(cin>>i;i!=1;cout<<i)if(i&1)i=i*3+1;else i/=2;
Рекурсивно? Дописывайте, а то непонятно.
раздел математика. Доказать, что ряд не бесконечен.
При изначальном числе 2, да одна итерация будет. Остальное надо доказать и если честно лень.