Как исправить этот код для «десятичной в двоичную» в C # - PullRequest
0 голосов
/ 01 мая 2019

У меня проблема с выводом формул из двоичной формулы в c #

 static void Main(string[] args)
        {
            Console.Write("Input number : ");
            int num = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("The Formula : ");

            int accommodate = 0;

            for (int i = num; i > 0; i /= 2)
            {
                if (num % i == 0)
                {
                    accommodate++;

                    if (accommodate == 2)
                    {
                        Console.WriteLine(i + "/2 = 0");
                    }
                    else
                    {
                        Console.WriteLine(i + "/2 = 1" );
                    }

                }
            }
             Console.ReadKey();
        }

, вывод

Ввод числа: 12

Формула:

12/2 = 1 "(X) это неправильно, оно должно быть 0"

6/2 = 0

3/2 = 1

1/ 2 = 1

1 Ответ

0 голосов
/ 01 мая 2019

Измените свой код на

accommodate % 2 вместо accommodate % i

Установить accommodate = i /= 2 для цикла вместо accommodate++

Console.Write("Input number : ");
            int num = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("The Formula : ");

            int accommodate = 0;

            for (int i = num; i > 0; accommodate = i /= 2)
            {
                if (accommodate % 2 == 0)
                {

                    Console.WriteLine(i + "/2 = 0");
                }
                else
                {
                    Console.WriteLine(i + "/2 = 1");
                }
            }
            Console.ReadKey();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...