Zakharov Lilit
?>

Два игрока играют в следующую игру.перед ними лежат две кучки камней, в первой-4 камня, а во второй-3 камня.у каждого игрока неограниченное кол-во камней. игроки ходят по очереди. ход состоит в том, что игрок или увеличивает в 3 раза число камней в любой куче.или добавляет 2 камня в какую-то кучу.кто выигрывает при без ошибочной игре обоих игроков-игрок, делающий первый ход, или игрок, делающий второй ход? каким должен быть первый ход выигрывающего игрока? ответ обоснуйте

Информатика

Ответы

Aleksandr556
Я Я играл в ету игру крутая
necit12
#include <iostream>
using namespace std;

int main() {
    int n=10,k=0;
    int a[n];
    srand(time(NULL));
    cout<<"array:"<<endl;
    for (int i=0; i<n; i++)
    {
      a[i]=rand() % 6;
      cout<<a[i]<<" ";
    }
    cout << endl;
    for (int i=1; i<n; i++)
    if (a[i-1]==a[i])  {
       k++;
       if (k==1) cout<< "Есть: ";
       cout << a[i] << " ";
    }
    if (k==0) cout << "Нет";
    return(0);
}

Пример:
array:
0 3 0 5 3 2 2 5 1 1
Есть: 2 1
T91610933073266
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!

type
  Exams=record
    fam:string;
    nam:string;
    ball:=new integer[4];
  end;
    
begin
  var Ls:=new List<Exams>;
  var b:Exams; // буфер
  ReadLines('marks.csv')
      .Foreach(t->begin
          var a:=t.ToWords(',');
          (b.fam,b.nam):=(a[0],a[1]);
          b.ball:=a[2:].Select(q->q.ToInteger).ToArray;
          Ls.Add(b)
          end);
  var n:=Ls.Count;
  // а
  var m:=Arr(0,0,0,0);
  var c:=Ls.Select(t->t.Ball);
  foreach var d in c do
    for var i:=0 to 3 do m[i]+=d[i];
  Writeln('Средние по предметам: ', m[0]/n:0:1,', ',m[1]/n:0:1,
      ', ',m[2]/n:0:1,', ',m[3]/n:0:1);
  // б
  var max:=Ls.Select(t->t.Ball.Sum).Max;
  Writeln(NewLine,'Максимальная сумма ',max);
  // в
  Writeln(NewLine,'Учащиеся, набравшие максимальную сумму :');
  Ls.Where(t->t.Ball.Sum=max).Select(t->t.fam+' '+t.nam)
      .OrderBy(t->t).Println(NewLine);
  // г
  Writeln(NewLine,'Получили хотя бы одну двойку:');
  Ls.Where(t->t.Ball.Any(t->t=2)).Select(t->t.fam+' '+t.nam)
      .OrderBy(t->t).Println(NewLine)
end.

Пример:
Средние по предметам: 3.3, 3.3, 4.0, 2.0

Максимальная сумма 13

Учащиеся, набравшие максимальную сумму :
Алескеров Имран
Бармин Владимир

Получили хотя бы одну двойку:
Александрова Маргарита
Алескеров Имран
Бармин Владимир

Замечание:
В PascalABC.NET 3.3 динамические массивы реализованы с списков, поэтому было принято решение использовать именно список, позволяющий не знать заранее размера массива и добавлять элементы по мере необходимости. Если возникнет причуда иметь данные именно в массиве, перед end. добавьте строку var x:=Ls.ToArray; - она создаст из списка массив х.

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

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

Два игрока играют в следующую игру.перед ними лежат две кучки камней, в первой-4 камня, а во второй-3 камня.у каждого игрока неограниченное кол-во камней. игроки ходят по очереди. ход состоит в том, что игрок или увеличивает в 3 раза число камней в любой куче.или добавляет 2 камня в какую-то кучу.кто выигрывает при без ошибочной игре обоих игроков-игрок, делающий первый ход, или игрок, делающий второй ход? каким должен быть первый ход выигрывающего игрока? ответ обоснуйте
Ваше имя (никнейм)*
Email*
Комментарий*

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

evainvest1
zurabghiendzhoian886
ooo-helpvet44
ValeriyaAleksandr
Андреевнатест707
ViktorovnaKraeva634
viktoritut
gennadevna
pechinin
julkamysh9
vetrov1
agafonovalyudmila346
radatailless
menesmir
Вячеславович-Дмитрий1694