Составить программу подсчета количества "1" в двоичном представлены десятичного числа - C#
Формулировка задачи:
Четные числа прибавляет как надо, а нечетные - не правильно.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace bit2
{
class Program
{
static void Main(string[] args)
{
int s = 0, i;
const int n = 10;
int[] a = new int[n];
Random rnd = new Random();
for (i = 0; i < n; i++)
a[i] = rnd.Next(0, 255);
Console.WriteLine("Массив:");
foreach (int r in a)
Console.WriteLine(r);
for (i = 0; i < n; i++)
{
for (int h = 1; h < 128; h++)
if (a[i] % (2 * h) == 0) s += 1;
if (a[i] % 2 != 0)
s += 1;
}
Console.WriteLine("Количество единиц = {0}", s);
//Для проверки
int[] bases = { 2 };
foreach (int baseValue in bases)
{
Console.WriteLine("\nДля проверки:");
foreach (int number in a)
Console.WriteLine("{0,-15}\t->\t{1}", number, Convert.ToString(number, baseValue));
}
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}Решение задачи: «Составить программу подсчета количества "1" в двоичном представлены десятичного числа»
textual
Листинг программы
for (i = 0; i < n; i++)
{
s += Convert.ToString(a[i], 2).Where(x => x == '1').Count();
}