Интересна задача


0
Айде да видим кой най-бързо ще се сети как да я реши.Напишете програма, която без да използва условни конструкции, тернарни оператори и цикли проверява дали дадено число е четно, или нечетно.



Отговори



0
Побитови операции?

от ivaylo.kenov (30760 точки)


0
разрешени са.....извинявай, объркал съм условието


0
Не, аз питам дали решението е с тях. Защото като ми кажеш "разкарай половината конструкции в езика", аз се сещам само за тях. Не съм го мислил иначе, ако ми остане време ще я пробвам. :)

от ivaylo.kenov (30760 точки)



0
това минава ли, или трябва да търсим решение, което не е language specific?

Console.WriteLine(Convert.ToBoolean(int.Parse(Console.ReadLine()) & 1));

от kon.simeonov (5238 точки)


0
не в конвърт и парс имаш забранени по условие if конструкции


1

Парса го ползва, за да си вземе числото, искаш да кажеш, че трябва да си сторваме и инпута като стринг ли? Според мен това е overkill в условието.

Ето едно предложение от мен, което обаче също ползва parse:

string[] outputStruct = new string[] { "Even", "Odd"};

int number = int.Parse(Console.ReadLine());

 Console.WriteLine(outputStruct[Math.Abs(number % 2)]);

Едит: не мога да се оправя с форматирането на code snippet-a тук във форума


от staccobain (834 точки)



0
Проверяваме нулевия бит от числото:
- ако е 1 - числото е нечетно. 
- ако е 0 - четно.
Имплементацията зависи от използвания език.

от Teodor92 (13062 точки)


0

ако

ако

Ето ти ги два if-a




3
Друга интересна задача:

Без if, while, for, foreach, switch, case, goto, ?:

Кой е най-срещания char в даден string?


от cuki (7696 точки)


1

string chars = "fasfnufnasfinqfsanaksfffasfasffafsfffefefnfmfkfkfkfmfnf";

var result = chars.GroupBy(x => x).ToDictionary(x => x.Key, v => v.Count()).OrderByDescending(x => x.Value).FirstOrDefault();

Console.WriteLine(result.Key + " --> " + result.Value);

Макар че предполагам, че тия extension методи вътрешно имат условни конструкции и не е това търсеното решение. :D


от INKolev (4141 точки)

0

Така е, без Linq.


от cuki (7696 точки)