С#
1) Цикл while
Дано число. Визначити, чи є це число степенем двійки.
2) Цикл do/while
Скласти програму-гру «Більше-Менше». Комп’ютер генерує
випадкове ціле число, а користувач намагається вгадати згенероване
число. Комп’ютер надає користувачу підказку, чи є введене число
більшим або меншим від загаданого. Також з клавіатури вводиться
максимальна кількість спроб.
Answers & Comments
1)
using System;
class Program {
static void Main() {
int num = 16;
bool isPow2 = true;
while (num > 1){
if (num % 2 == 0){
num /= 2;
} else {
isPow2 = false;
break;
}
}
if (isPow2)
Console.WriteLine("Является");
else
Console.WriteLine("Не является");
}
}
2)
using System;
class Program {
static Random rnd = new Random();
static void Main() {
int min = 1;
int max = 100;
int numOfAttempts = 8;
int x = rnd.Next(min, max);
bool isWin = false;
Console.WriteLine("Игра \"Больше-Меньше\"");
Console.Write("Задайте число попыток: ");
numOfAttempts = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Отгадайте число от {0} до {1}", min, max);
Console.WriteLine("Попытки: {0}\n", numOfAttempts);
int input;
do {
Console.Write("Введите число: ");
input = Convert.ToInt32(Console.ReadLine());
numOfAttempts--;
if (input > x)
Console.WriteLine("x < {0} [попытки: {1}]", input, numOfAttempts);
if (input < x)
Console.WriteLine("x > {0} [попытки: {1}]", input, numOfAttempts);
if (input == x){
isWin = true;
break;
}
} while (numOfAttempts > 0);
if (isWin){
Console.WriteLine("\nПобеда!");
} else {
Console.WriteLine("\nПроигрыш! Загаданное число: {0}", x);
}
}
}