Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 54

Какие числа может объявить игрок A на начальном шаге, чтобы игрок B в некоторый момент объявил число 00.

04.04.2013, 07:00. Показов 3078. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Игрок A объявляет двузначное число от 01 до 99. Игрок B меняет местами его цифры и прибавляет полученное число к сумме его цифр. Полученный результат он объявляет игроку A. Игрок A проделывает с этим числом ту же процедуру, и так они продолжают поступать поочередно, объявляя числа. От суммы чисел берется остаток от деления на 100, поэтому объявляются лишь двузначные числа. Какие числа может объявить игрок A на начальном шаге, чтобы игрок B в некоторый момент объявил число 00.

Помогите пожалуйста)))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2013, 07:00
Ответы с готовыми решениями:

Игрок А объявляет двузначное число от 01 до 99. Игрок В меняет местами его цифры и прибавляет полученное число
Игрок А объявляет двузначное число от 01 до 99. Игрок В меняет местами его цифры и прибавляет полученное число к сумме его цифр. Полученный...

Какие числа может объявить первый игрок на начальном шаге, чтобы второй игрок в некоторый момент объявил число 00?
. Игрок А объявляет двузначное число от 01 до 99. Игрок В меняет местами его цифры и прибавляет полученное число к сумме его цифр....

Крестики-нолики с использованием массивов в режиме игрок-игрок
Имею код, не получается написать код для игры игрок-игрок, игрок-компьютер работает прекрасно помогите написать код, особенно обращение к...

30
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
04.04.2013, 11:50
примерчики бы, что подразумевается под "меняет местами его цифры и прибавляет полученное число к сумме его цифр" это если было 14, то он поменял местави, стало 41 и далее получается сложил 41 и 5 ?

"так они продолжают поступать поочередно" - то есть число новое объявляется только 1 раз и далее они просто уже работают по алгоритму? или же объявляется новое число от А, его меняет Б, ответ Б меняет А и затем А объявляет новое число?

"От суммы чисел берется остаток от деления на 100" можно было сразу об этом сказать!!!!

Получается, что действия такие:
1)меняем числа местами
2)прибавляем новое число к сумме цифр
3)делим по модулю 100

НО тут при делении на 100 ведь могут получиться и не 2х значные числа: 0,1,2,3,...9

Вам надо найти всевозможные варианты или же достаточно одного? если одного, то например объвление первым числа 68: поменяли местами, получилось 86, далее складываем с 14 получается 100 и деление по модулю 100 даст 0

Добавлено через 3 минуты
или же вам прогу надо написать?
0
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 54
04.04.2013, 16:42  [ТС]
Да надо программу писать...и я так поняла пользователь водит число, а выводится число А, при котором производится наименьшее кол-во таких действий, чтобы получилось 00.
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
04.04.2013, 16:52
нет, пользователь может ввести число - это число и будет начальное число А от которого и пойдет пляска, и там может отображаться сколько таких кругов было или просто какие были круги, не знаю, надо уточнять, потому что вводится только одно число и дальше с ним идут преобразования пока не получится 00, либо надо просто написать прогу, которая все варианты будет перебирать, не понятно что именно должна делать программа, можете уточнить?)

Добавлено через 2 минуты
здесь вообще в проге может не потребоваться действие юзера кроме как тычка на кнопку "начать" =) либо вы можете быть игроком А, который задает начальное число а что после этого делать остается только гадать - либо дать ответ сколько прошло итераций и какие результаты на каждой итерации, либо просто дать ответ с кол-вом итераций, либо еще что-то
0
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 54
04.04.2013, 17:01  [ТС]
Какие числа может объявить игрок A на начальном шаге, чтобы игрок B в некоторый момент объявил число 00.- вопрос, который задается в задаче.

Добавлено через 1 минуту
Помогите программку написать((
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
04.04.2013, 17:27
Ну если так поставить вопрос: "Какие числа может объявить игрок A на начальном шаге, чтобы игрок B в некоторый момент объявил число 00.", то пользователь вообще не будет принимать в этом участия, только если запустит алгоритм.

ну собственно все просто, мы можем перебрать все возможные варианты - а их всего 100 будет =) только вот самое будет муторное, чтобы числа были именно из двух чисел) не 1, а 01 чтобы было) такс, сейчас уже наверно не успею сделать, завтра )
0
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 54
04.04.2013, 17:48  [ТС]
Хорошо))) Заранее спасибо)))
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
04.04.2013, 17:54
А задачу обязательно на Javasript делать да?) напишите пока интерфейс чтоли)
0
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 54
04.04.2013, 21:50  [ТС]
да обязательно(((
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
05.04.2013, 07:55
ну ок, интерфейс уже написан?)
0
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 54
05.04.2013, 14:30  [ТС]
нет...программку главное надо...
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
05.04.2013, 14:32
а как выводить результаты то будете?
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
08.04.2013, 08:27
вы штмл хотя бы знаете?
0
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 54
08.04.2013, 09:28  [ТС]
просто в строчку надо и все

Добавлено через 1 минуту
Нам только начали курс читать...а лабы давненько начали делать
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
08.04.2013, 14:18
скоро будет готов, ща протестирую

Добавлено через 23 минуты
хм, как интересно предусмотреть выход из циклов =) там есть случаи с зацикливанием =)

Добавлено через 30 секунд
или тупо ограничивать по количеству итераций, надо подумать)

Добавлено через 2 часа 5 минут
В общем вот что получилось:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<script type="text/javascript">
 
  function showNumbers()
  {
    var resStr = 'Цифры:';
    var numberB = -1;
 
    for (var i = 1; i < 100; i++)
    {
      var numberA = i;
      var oldNumbers = new Array();
      var isBreake = false;
 
      while (numberB != 0)
      {
        oldNumbers.push(numberB);
        numberB = GetNumberB(ConvertNumber(numberA));
        numberA = GetNumberB(ConvertNumber(numberA));
        if (NumberIsExistInArray(oldNumbers, numberB))
        {
          isBreake = true;
          break;
        }
      }
      if (isBreake == false)
      {
        resStr += i + ' /// ';
      }
    }
    alert(resStr);
  }
 
  //функция, которая возвращает число в нужном формате(двузначное число)
  //например если передали 1, то она должна вернуть 01
  function ConvertNumber(number)
  {
    var result = number;
 
    if(number < 10)
    {
      result = '0'+number;
    }
      
    return result;
  }
 
  function GetNumberB(numberA)
  {
    numberA = numberA + '';
    var d1 = numberA[0];
    var d2 = numberA[1];
 
    numberB = d2 + '' + d1;
    numberB = parseInt(numberB, 10) + parseInt(d1, 10) + parseInt(d2, 10);
    numberB = numberB % 100;
 
    return numberB;
  }
 
  function NumberIsExistInArray(array,number)
  {
    for (var i = 0; i < array.length; i++)
    {
      if (array[i] == number) return true;
    }
    return false;
  }
 
  showNumbers();
 
</script>
оптимизацию кода, обработка возможных исключений и прочее оставляю на вас=)
0
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 54
08.04.2013, 16:55  [ТС]
Спасибо большое!!!)))
0
22 / 22 / 13
Регистрация: 13.01.2013
Сообщений: 125
08.04.2013, 19:48
ну скрипт я вам вроде как написал...только вот проблема например с 1-й у меня зависает(честно используя дебагер дошол до 100-го действия и надоело...возможно висло потому что машина слабая)...пока сделал вам наглядный пример только для одного числа (переменная num)
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
document.body.innerHTML='';
var num=68;
var chislo=num;
var winner='';
var player=1;
while (chislo!=0){
    var first=chislo%10;
    var last=Math.floor(chislo/10);
    chislo=Number(first+''+last)+Number(first+last);
    if (chislo>99) chislo=chislo%100;
    player=player+1;
}
if (player%2==0) winner='A';
else winner='B';
var div=document.createElement('div');
div.innerHTML='Стартовое число = '+num+'; Действий = '+(Number(player)-1)+'; Победитель = '+winner+';';
document.body.appendChild(div);
Добавлено через 13 минут
добавил коментарии...убрал зависания...ограницил все 100 действиями
З.Ы. думаю мой попроще будет
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
document.body.innerHTML='';
for (i=1;i<100;i++){ //для всех чисел от 1 до 99
    var num=i;
    var chislo=num;
    var winner='';
    var player=1;
    while (chislo!=0){ //выполнять пока число не привратится в 00
            var first=chislo%10; // выделяем последнюю цыфру
            var last=Math.floor(chislo/10); // выделяем первую цыфру
            chislo=Number(first+''+last)+Number(first+last); //меняем местами цыфры и прибавляем сумму цыфр
            if (chislo>99) chislo=chislo%100; // если число больше 99 оставляем только последние 2 цыфры
            player=player+1; // щитаем количество действий :)
            if (player>100) chislo=0; // проверяем количество действий
    }
    if (player%2==0) winner='A';
    else winner='B';
    var div=document.createElement('div');
    if (player<101)  div.innerHTML='Стартовое число = '+num+'; Действий = '+(Number(player)-1)+'; Победитель = '+winner+';';
    else div.innerHTML='Стартовое число = '+num+'; Ошибка = больше 100 действий';
    document.body.appendChild(div);
}
0
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 54
09.04.2013, 09:44  [ТС]
У меня не работает...не знаю что там переделать надо..потому что вообще не разбираюсь..((((((((((
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
09.04.2013, 10:41
что именно не работает?)
0
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 54
09.04.2013, 10:47  [ТС]
http://comp-science.narod.ru/Student/web-lr-4.htm надо скопировать документ...оттуда удалить код и вставить свой..я его туда вставляю и ничего не работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.04.2013, 10:47
Помогаю со студенческими работами здесь

Первый игрок делает ход в "дурака" - определить, сможет ли второй игрок побить эту карту
Заданы достоинства и масти шести шести карт первого игрока, достоинства и масти шести карт второго игрока, кроме того, известна козырная...

Как сделать так, чтобы в 2d платформере, когда игрок "напрыгивает" на объект - происходили какие-либо действия
Здравствуйте! Только начал погружаться в мир Unity и возникли некоторые трудности. При помощи такого кода мы можем отследить...

Игрок может нажимать на объект издалека
Как сделать так, чтобы игрок мог нажать на объект(дверь) только с близкого расстояния 3д. скрипт повешен на двери using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru