Задача на поиск в массиве количества единиц в двоичном коде - C#

Узнай цену своей работы

Формулировка задачи:

Нужно чтобы выводилось количество единиц в каждой строке. Примерно так: 58 -> 111010 -> 4 129 -> 10000001 -> 2 и т.д.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace bit2
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. int s = 0, i;
  13. const int n = 10;
  14. int[] a = new int[n];
  15. int[] bases = { 2 };
  16. Random rnd = new Random();
  17. for (i = 0; i < n; i++)
  18. a[i] = rnd.Next(0, 255);
  19. Console.WriteLine("Массив:");
  20. foreach (int r in a) Console.WriteLine(r);
  21. for (i = 0; i < n; i++) s += Convert.ToString(a[i], 2).Where(x => x == '1').Count();
  22. Console.WriteLine("Количество единиц = {0}", s);
  23. foreach (int baseValue in bases)
  24. {
  25. Console.WriteLine("\nДля проверки:");
  26. foreach (int r in a)
  27. Console.WriteLine("{0,-15}\t->\t{1}", r, Convert.ToString(r, baseValue));
  28. }
  29. Console.Write("Press any key to continue . . . ");
  30. Console.ReadKey(true);
  31. }
  32. }
  33. }

Решение задачи: «Задача на поиск в массиве количества единиц в двоичном коде»

textual
Листинг программы
  1.         static void Count(int value, out int ones) {
  2.             ones = 0;                        
  3.             while (value != 0) {
  4.                 if ((value & 1) == 1)
  5.                     ones++;                                                  
  6.                 value = (value >> 1);
  7.             }
  8.         }
  9.  
  10.  
  11.         static void Main(string[] args) {
  12.  
  13.             const int n = 10;
  14.             int ones;
  15.             Random rnd = new Random();
  16.             int[] a = new int[n];
  17.  
  18.             for (int i = 0; i < n; i++) {
  19.                 a[i] = rnd.Next(0, 255);
  20.                 Count(a[i], out ones);
  21.                 Console.WriteLine("{0} -> {1} -> {2}", a[i], Convert.ToString(a[i], 2), ones);
  22.             }
  23.             Console.ReadKey();
  24.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы