Познаване на намислено число

Да се напише програма, която може да познае намислено от вас число в диапазона от 1 до 100 от 10 опита. Как действа програмата: казва ви дадено число, а ако не е познала, вие я насочвате с символите ‘<‘ (ако намисленото число е по-малко от казаното), ‘>’ (ако е по-голямо) и ‘=’ (ако числото е познато).

Решение: Програмата може да работи по метода на двоичното търсене: в началото започва с интервал от 1 до 100. Винаги казва числото, което е в  средата на интервала (т.е. 50), и ако намисленото число е по-малко, то средата на интервала става горна граница на новия интервал – т.е вече ни интересуват числата от 1 до 50, затова предлагаме 25. Повтаряме тази процедура, докато уцелим числото.

Публикувано в 11а, 11в с етикети . Постоянна връзка.

2 Responses to Познаване на намислено число

  1. Gadget каза:
    int nach,krai,chislo;
        char z;
        //Zadavame nachalna stoinost na intervala [0;100]
        nach=0;
        krai=100;
        cout<<"Namislete si chislo ot 1 do 100! (10 vuzmojni opita do namirane na chisloto)"<<endl;
        for(int i=1;i<10;i++){
           chislo=(nach+krai)/2;     
            cout<<i<<" Opit!"<<endl; 
           cout<<chislo<<endl;
           cout<<"Vavedete dali namislenoto chislo e po-golqmo, po-malko ili e ravno: ";
           cin>>z;
           //Vzavisimost ot znaka se promenq intervala
           if(z=='<')
            krai=chislo;
           if(z=='>')
            nach=chislo;
           //Prekratqvame tzikula
           if(z=='='){
            ;break;
           }
        }
         cout<<"Namislenoto chislo e :"<<chislo<<endl;
    

Вашият коментар