Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2009, 23:16   #1
bol2909
Пользователь
 
Регистрация: 19.11.2009
Сообщений: 19
Восклицание Вопросы к задаче о спичках

Помогите чем сможете пожалуйста!
Условие задачи:
Выбирается кол-во спичек,выбирается кол-во спичек от 1-3
для взятия побеждет тот кто возьмет последнюю спичку!
Секрет в том что:
надо брать столько спичек чтобы следующее число делилось на 4 без остатка ну и иногда нужно брать 1,2 или 3 спички если не возможно получить число делящееся на 4 без остатка вот так вот!
Вот мое решение но оно не совсем верно:
Код:
#include <iostream>
int main()
{
  //*******************************************************************************************
   using namespace std;
     cout <<"You can take from 1 to 3 matches for each time\n";//Вы можете взять от 1 до 3 спичек каждый раз
     cout <<"The winner will be man who takes the last match!\n";//Выиграет тот кто возьмет последнюю спичку!
     cout <<"Please,your turn\n";//Ваша очередь
     cout <<"Enter the number of matches!\n";//Введите число спичек
   //********************************************************************************************
   int n,k;
     std::cin>>n;
   //*******************************************************************
   play:  ;
   std::cout <<"\nEnter the number of matches you want to take\n";//Введите число спичек которых хотите взять!
   std::cin>>k;
  if (k<1||k>3)
  {std::cout<<"it is not right\n";
  goto play;}
  else
    {std::cout<<"ok\n";}
    //**************************************************************
         n=n-k;
         //*****************************************************
         if (n<=0)
         {std::cout<<"\nYou win!";
           return 0;}
         else
         {goto comp;}
         //******************************************************
          comp:
          if
          ((n-2)%4*4==n)
          {n=n-2;
          cout<<n;}
          else
          {n=n-1||n-3;
          cout<<n;}
          //**************************************************************
          if
          ((n-1)%4*4==n)
          {n=n-1;
          cout<<n;}
          else
          {n=n-2||n-3;
          cout<<n;}
          //**************************************************************
          if
          ((n-3)%4*4==n)
          {n=n-3;
          cout<<n;}
          else
          {n=n-1||n-2;
          cout<<n;}
          //*************************************************************
          if (n<=0)
        {std::cout<<"\nComputer wins!";
           return 0;}
         else
         {goto play;}
         //************************************************************
       Sleep(10000);
        return 0;

}
bol2909 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в задаче!!! Stiffler Помощь студентам 6 08.12.2009 19:49
Вопрос по задаче VadEr Помощь студентам 3 10.05.2009 11:11
Вопрос по задаче file Паскаль, Turbo Pascal, PascalABC.NET 20 03.06.2008 17:37
Вопрос по задаче Freeman12 Помощь студентам 5 26.05.2008 17:40