Loops Homework 2015


9

Да си има и за него тема, че ще се разсърди. :)

Пускам моите решения и чакам други гледни точки.

Естествено, темата е и за обсъждане на задачите, не само да си мерим... кода. :)




Отговори



10

Разгледах решенията, като загледах по-подробно решенията ви за превръщане на двоично число в десетично.

Ползвайте по-активно наученото досега... :)

Примерно индексатор на стринг ([i]) връща ... char. А char-а има "двуличност" - хем е буквичка, хем можеш да извършваш математически операции с нея, по-точно с unicode стойността й. '1'-48 e съвсем приемливо от гледна точка на компилатора, и може да се ползва в математически операции като числото 1.

Още - имате на разположение побитови операции, тернарни оператори ... ползвайте ги, сега ви е паднало - по-нататък рядко ще имате възможност да ги употребявате.

Ето примерно едно мое решение:

        string input = Console.ReadLine();
        int result = 0;
        for (int i = 0; i < input.Length; i++)
        {
            result = (result << 1) + (input[i] == '1' ? 1 : 0);
        }

Сега ... result <<1 може да го напишете като result * 2, вече е въпрос на вкус, но точно сега извършвате побитови преобразувания, така че първия вариант за мен е по-четим, по се връзва в темата... Math.Pow е як overkill, когато го ползвате да повдигате цяло число на цяла степен.


от JulianG (5316 точки)


0

Eто го моя опит с домашните. Приятна ден .

http://github.com/KostadinPetrov/CSharp-Part-1/tree/master/06.Loops