osherbinin
?>

Играют двое. первый участник игры называет произвольное целое число , не превышающее десяти. второй игрок прибавляет к названному числу своё целое число , тоже не превышающее десяти , и сообщает полученную сумму. к этой сумме первый игрок также прибавляет произвольное целое число , не превышающее десяти , и сообщает новую сумму . к новой сумме второй прибавляет число и т.д. до тех пор , пока окончательной суммой не окажется число 100.. выигрывает тот, кто первый достигает 100. как должен действовать первый игрок, чтобы выйграть ?

Информатика

Ответы

saniopt
Перваму играку нужна перваму сказать число и пастаяна гаварить 10 тагда он выиграет 
droshchupkin

Відповідь:

Каталоги:

А:\СТРАНА

А:\CЕМЬЯ\СЕСТРА

А:\CЕМЬЯ\БРАТ

А:\СТРАНА (- в этом ошибка т.к например в файловой системе windows в одном каталоге нельзя хранить 2 каталога с одинаковым именем, тоесть на диске А нельзя иметь 2 папки с названием "СТРАНА")

Пути к файлам:

А:\CЕМЬЯ\Отец.txt

А:\CЕМЬЯ\Мама.txt

А:\CЕМЬЯ\Мама.txt (- аналогичная ошибка 2 файла с одинаковым названием в одном каталоге не позволяются)

А:\CЕМЬЯ\СЕСТРА\Катя.text

А:\CЕМЬЯ\СЕСТРА\Маша.txt

А:\CЕМЬЯ\БРАТ\Миша.txt

А:\CЕМЬЯ\БРАТ\Рома.txt

Пояснення:

vik1223

Так как тут мизерные ограничения, то для решения конкретно этой задачи можно просто проифать : если n == 5 || n == 125 , то YES , иначе NO

НО мы же не пальцем деланные, да? Поэтому решим задачку и для больших N, с асимптотикой log2(N), используя бинпоиск :

#include < iostream >

#include < cmath >

using namespace std;

bool check(int n){

   int l = 0, r = 15;

   while(l <= r){

       int m = (l + r)/2;

       if(pow(5,m) < n)

           l = m + 1;

       else if(pow(5,m) > n)

           r = m - 1;

       else

           return true;

   }

   return false;

}

signed main() {

   int N;

   cin >> N;

   check(N) ? cout << "YES" : cout << "NO";

}

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Играют двое. первый участник игры называет произвольное целое число , не превышающее десяти. второй игрок прибавляет к названному числу своё целое число , тоже не превышающее десяти , и сообщает полученную сумму. к этой сумме первый игрок также прибавляет произвольное целое число , не превышающее десяти , и сообщает новую сумму . к новой сумме второй прибавляет число и т.д. до тех пор , пока окончательной суммой не окажется число 100.. выигрывает тот, кто первый достигает 100. как должен действовать первый игрок, чтобы выйграть ?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

serge-lysoff
СмыковаДарья1969
vladburakoff5
artem032100
keti0290103
seleznev1980
gabramova
Дмитрий_Владимирович1162
Микроволновые системы что это​
agaloan8
yanermarina87
kriapex
andreanikin
Татьяна1856
Гарик383
cheshirsky-kot