В задаче не уточнили, в какой кодировке запись.
Если считать за 1 символ 1 байт, то получится 73 байта.
Если считать за 2 символ 2 байта, то 73*2=146 байт
У этих игр очень простая стратегия. Запомните её один раз и будете решать любые подобные задачи.
Пусть дано P предметов и за ход можно брать от 1 до n предметов.
Вычисляем "магическое число" М = n+1.
Находим остаток целочисленного деления P на M - он покажет, сколько спичек надо взять при первом ходе для выигрыша. Если 0 - то игрок, делающий ход первым, проигрывает. Выигрышная стратегия проста. Если противник взял k предметов, мы берем M-k.
Рассмотрим задачу 1.
P=25, n=4
М=n+1=5, P/M дает в остатке 0 - игрок, делающий ход первым, проигрывает.
Выигрышная стратегия: брать 5-k предметов, оставляя противнику 20, 15, 10 и 5 предметов.
Рассмотрим задачу 2.
P=107, n=2
M=n+1=3, P/M дает в остатке 2 - игрок, делающий ход первым, берет 2 предмета и выигрывает.
Выигрышная стратегия: брать 3-k предметов, оставляя противнику 105, 102, 99, 96, ... предметов.
program Cikle;
uses crt;
var a,b,i,k:integer;
Begin
clrscr;
write('Введите А: '); readln(a);
<span>write('Введите B: '); readln(b);
</span>if a>b then begin i:=a; a:=b; b:=i end;
{_______________________________________}
{1 способ реализации - цикл for}
k:=0;
for i:=a to и do k:=k+i;
{_______________________________________}
{2 способ реализации - цикл с предусловием while}
k:=0;
while a<=b do begin
k:=k+a;
a:=a+1 end;
{_______________________________________}
{3 способ - цикл с постусловием repeat}
k:=0;
repeat
k:=k+a;
a:=a+1;
until a>b;
{_______________________________________}
{Окончание программы одинаковое для всех способов}
Writeln('Сумма элементов в интервале [A;B] равна ', k)
readln
End.
//Dev-C++ 5.11 (C)
#include <stdio.h>
#include <ctime>
#include <stdlib.h>
int main(void)
{const int m=5;
const int x=5;
int Matrix[m][x],min,a,b;
srand(time(NULL));
scanf("%d %d",&a,&b);
for(int i=0;i<m;i++)
{for(int j=0;j<x;j++)
{Matrix[i][j]=(rand()%(b+1-a))+a; //r=(rand()%(max+1-min))+min
printf("%d ",Matrix[i][j]);}
printf("\n");}
a=1;
min=Matrix[0][0];
for(int i=0;i<m;i++)
{for(int j=0;j<x-a;j++)
if(min>Matrix[i][j])
min=Matrix[i][j];
a++;}
printf("%d",min);
return 0;}
Пример ввода:
-30 30
Пример вывода:
3 11 -18 21 27
22 -5 21 13 -11
-6 15 16 -28 -5
10 -15 6 -24 -3
-10 -15 25 -30 -30
-18
Два конца два кольца посередине гвоздик
Вокруг проруби под холмом сидят белы голуби
Оправа похожа на два обруча,два стекла похожи на два озера,а дужка похоже на мост