В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Asja21
Asja21
06.01.2023 03:05 •  Информатика

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу два камня или увеличить количество камней в куче в четыре раза. Например, имея кучу из 10 камней, за один ход можно получить кучу из 12 или 40 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней. Игра завершается в тот момент, когда количество камней в куче становится не менее 69. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 69 или больше камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 68.
1. При каких S: 1а) Петя выигрывает первым ходом; 1б) Ваня выигрывает первым ходом?
2. Назовите три значения S, при которых Петя может выиграть своим вторым ходом.
3. Назовите два значения S, при которых Ваня выигрывает своим первым или вторым ходом.

Показать ответ
Ответ:
егор673
егор673
10.05.2022 12:13
Начнем с того, что исправим текущий код. У вас используется цикл, но он совершенно здесь не нужен.
Вот программа без цикла. 

#include "stdafx.h"

#include <iostream>

using namespace std;

int main()

{

int d, m, y, i;

int max[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

setlocale(0, "");

cout << "Введите день(число)";

cin >> d;

cout << "Введите месяц(число)";

cin >> m;

cout << "Введите год(число)";

cin >> y;

if ( (y % 4 == 0 && y % 100 != 0) || y % 400 == 0) //Проверка что год високосный

max[1]++;

if( d == max[m-1])

{

d = 1;

m++;

}

else

    d++;


if (m == 13)

{

m = 1;

y++;

}

cout << d << " " << m << " " << y;


cin >> d;//Ожидание ввода, чтобы посмотреть результаты пработы программы

return 0;

}


Эта программа определяет следующий день от текущего.


А вот программа, которая определяет предыдущий день.

#include "stdafx.h"

#include <iostream>

using namespace std;

int main()

{

int d, m, y, i;

int max[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

setlocale(0, "");

cout << "Введите день(число)";

cin >> d;

cout << "Введите месяц(число)";

cin >> m;

cout << "Введите год(число)";

cin >> y;

if ( (y % 4 == 0 && y % 100 != 0) || y % 400 == 0) //Проверка что год високосный

max[1]++;

if( d == 1)

{

if (m == 1)

{

m = 12;

y--;

}

else

m--;


d = max[m - 1];

}

else

    d--;


cout << d << " " << m << " " << y;


cin >> d;//Ожидание ввода, чтобы посмотреть результаты пработы программы

return 0;

}




0,0(0 оценок)
Ответ:
13мама
13мама
23.08.2021 19:59
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  var (a,b,h):=(0.0,3*Pi,0.6);
  var x:=a;
  var (k,s):=(0,0.0);
  while x<=b do begin
    var y:=x*Sin(x);
    Writeln(x:5:1,y:18:13);
    if y>0 then k+=1 else s+=y;
    x+=h
    end;
  Writeln('Положительных- ',k,', сумма отрицательных ',s)
end.

Пример
  0.0   0.0000000000000
  0.6   0.3387854840370
  1.2   1.1184469031607
  1.8   1.7529257355808
  2.4   1.6211116333228
  3.0   0.4233600241796
  3.6  -1.5930735958615
  4.2  -3.6606182441371
  4.8  -4.7815901224120
  5.4  -4.1729282328023
  6.0  -1.6764929891936
  6.6   2.0561729991883
  7.2   5.7144086197139
  7.8   7.7886380939219
  8.4   7.1786308279416
  9.0   3.7090663671758
Положительных- 10, сумма отрицательных -15.8847031844065
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота