Как сделать эту программу
как описано ниже.
Сначала пользователю предлагается ввести число от 1 до 1024. Определяемая пользователем функция
следует проверить входное значение пользователя. Если значение не находится в диапазоне от 1 до 1024, то возникает ошибка
сообщение должно быть отображено.
Во-вторых, рекурсивная функция ищет входное значение пользователя систематическим методом и
печатает все предполагаемые значения во время процесса. Рекурсивная функция находит число как
показано ниже с его предполагаемыми значениями.
Предположим, пользователь вводит 625. Затем программа печатает свои предполагаемые значения во время поиска
входное значение пользователя, как показано ниже.
1024,
512,
768,
640,
576,
608,
624,
632,
628,
626,
625
Предположим, пользователь вводит 300. Затем программа печатает свои предполагаемые значения во время поиска
входное значение пользователя, как показано ниже.
1024,
512,
256,
384,
320,
288,
304,
296,
300
Что я уже пробовал:
#include <iostream> #include <math.h> int search(int num); using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int sum=0; int main(int argc, char** argv) { int x; cout <<"enter number between 0 to 1024 "; cin>>x; search(x); return 0; } int search(int num){ int p=num; if(sum!=num){ for(int i=0;i<100;i++){ if(sum<num){ sum=1024/2*pow(2,i)+sum; cout<<sum<<endl; }else{ sum=1024/(2*pow(2,i))-sum; cout<<sum<<endl; } }return search(sum); }else{ return 1; } }