#include "stdio.h" #include "stdlib.h" #include "vector" using namespace std; int minimum(int c1, int c2) { return (c1 p1; vector p2; while (c1 != 0 || c2 != 0) { int sc1 = c1; int sc2 = c2; p1.clear(); long cislo = c1; while (cislo != 1) { p1.push_back(cislo); if (cislo%2 == 0) { cislo = cislo/2; } else { cislo = 3*cislo+1; } } p1.push_back(cislo); p2.clear(); cislo = c2; while (cislo != 1) { p2.push_back(cislo); if (cislo%2 == 0) { cislo = cislo/2; } else { cislo = 3*cislo+1; } } p2.push_back(cislo); int rozdil = abs(p1.size()-p2.size()); int prvni = p1.size(); int druhy = p2.size(); int velikost_prvni = p1.size(); int velikost_druhy = p2.size(); if (velikost_prvni > velikost_druhy) { for (int i=0; i velikost_druhy) { printf("%d needs %d steps, %d needs %d steps, they meet at %d\n",sc1,prvni,sc2,druhy,p1[rozdil+minimum(prvni,druhy)]); } else { printf("%d needs %d steps, %d needs %d steps, they meet at %d\n",sc1,prvni,sc2,druhy,p2[rozdil+minimum(prvni,druhy)]); } scanf("%d%d",&c1,&c2); } return 0; }