841

invatam c++ si apar intrebari

daca aveti timp liber si nu aveti ce sa facetiConditiile unei probleme de la olimpiada de programare dintr-o carte:Рассмотрим следующий алгоритм генерации последовательности чисел. Начнем с целого числа n. Если n четно, то поделим на 2. Если n нечетно, то умножим на 3 и добавим 1. Будем повторять этот процесс с новым полученным n, пока n не станет равным 1. Например, для n = 22 будет сгенерирована следующая последовательность чисел: 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 Полагают (но это еще не доказано), что этот алгоритм сведется к n = 1 для любого целого n. По крайней мере, это предположение верно для всех целых чисел до 1 000 000. Для данного n длиной цикла n будем называть число сгенерированных чисел до и включая 1. В примере, приведенном выше, длина цикла 22 равна 16.Для двух заданных чисел i и j вы должны определить максимальную длину цикла для всех чисел между i и j, включая обе конечные точки. Входные данные Входные данные будут состоять из серии пар целых чисел i и j, одна пара чисел в строке. Все целые числа будут меньше 1 и больше 1000000. Выходные данные Для каждой пары чисел i и j выведите i, j в том порядке, в каком они были введены, и после этого выведите максимальную длину цикла для всех целых чисел между i и j, включая сами i и j. Эти три числа должны быть разделены одним пробелом, все три числа в одной строке, и для каждой строки входных данных должна быть одна строка выходных данных. Пример входных данных Соответствующие выходные данные 1 10 1 10 20 100 200 100 200 125 201 210 201 210 89 900 1000 900 1000 174 problema pare simpla dar e greu de inteles ce se cere da la tine.mai jos se expune o posibila varianta de rezolvare,insa luind in cosideratie ca sunt inca incepator am urmatoarele rugaminte catre cei ce cunosc c/c++Intrebari:1)ce e gresit in cod(greseala lociga) in main acolo e indicat.2)ladna asta nu e chiar asa important ca scad eu si singur dar cind incerc sa controlez daca corespunde raspunsurile mele cu cele date de carte-> Пример входных данных Соответствующие выходные данные 1 10 1 10 20 100 200 100 200 125 201 210 201 210 89 900 1000 900 1000 174 observ ca pentru primul exemplu rezultatul corespunde dar mai depatre nu prea.De ce?3)eu sunt incepator si codul meu lasa de dorit. Daca puteti si aveti timp modificati sau creati propriul cod mai profesional si eficient. acolo oleaca s-o incurcat in loc de 1 000 000 trebu 1 si inloc de 1 trebu 1 000 000 code :#include#include int* calcul_final(int m);void main() { clrscr(); int *f,*g; int a,b; cout>a>>b; cout"1) { int j; for( j=--i;j>=1;j--) { i=i+j;} return i; } return 0; }/*************************************************** functia in care are loc calculul*******************************************************/int* calcul_final(int m) { int f; int i=0; int *pf; while(m!=1) { i++; m=genereaz_urm_elem(m); arata (m); } cout" "
0