Перевести задачу на спички с Pascal - C#
Формулировка задачи:
program v3;
var a,b,c,k,p,n,m:integer;
begin
write('введите число спичек '); read(n);
write('сколько можно брать спичек за ход? '); read(m);
while p=0 do begin
while c=0 do begin
writeln();
write('тяните спички '); read(a);
if a < 1 then c:=0 else c:=1;
if a > m then c:=0 else C:=1;
end;
c:=0;
n:=n-a;
if n<=0 then p:=1;
if p=0 then begin
writeln('спичек осталось: ',n);
if n mod (m+1) <> 0 then begin
for k:=1 to m do if (n-k) mod (m+1) = 0 then b:=k;
end
else b:=random(m)+1;
writeln('компьютер взял ',b);
n:=n-b;
if n=0 then p:=2;
writeln('спичек осталось ',n);
end;
writeln();
end;
case p of
1: writeln ('Вы победили!');
2: writeln ('Победа компьютера');
end;
end.Решение задачи: «Перевести задачу на спички с Pascal»
textual
Листинг программы
class Program {
static void Main(string[] args) {
int a = 0, b = 0, c = 0, p = 0, n, m;
Console.Write("введите число спичек "); n = Console.Read();
Console.Write("сколько можно брать спичек за ход?"); m = Console.Read();
while (p == 0) {
while (c == 0) {
Console.WriteLine();
Console.WriteLine("тяните спички "); a = Console.Read();
if (a < 1) c = 0; else c = 1;
if (a > m) c = 0; else c = 1;
}
c = 0;
a = 0;
n -= a;
if (n <= 0) p = 1;
if (p == 0) {
Console.WriteLine("спичек осталось: ", n);
if (n % (m + 1) != 0) {
for (int k = 1; k <= m; k++) {
if ((n - k) % (m + 1) == 0) b = k;
}
} else {
Random random = new Random();
b = random.Next(0, m) + 1;
}
Console.WriteLine("компьютер взял '", b);
n -= b;
if (n == 0) p = 2;
Console.WriteLine("спичек осталось ", n);
}
Console.WriteLine();
switch (p) {
case 1: Console.WriteLine("Вы победили!"); break;
case 2: Console.WriteLine("Победа компьютера"); break;
}
Console.ReadKey();
}
}
}