...
Гений
(84859)
9 лет назад
Ну сходу в голову пришли такие конструкции:
1: Рекурсия
2: Split. Т. к. известно, что у нас могут быть только 1 и 0, то можно разбить строку по 1 и посчитать количество таких подстрок
public static void Main (string[] args)
{
int i = int.Parse (Console.ReadLine ());
Console.WriteLine (Convert.ToString(i,2).Split ('1').Length-1);
}
3: В Char - Array и выборка всех элементов = '1'
public static void Main (string[] args)
{
int i = int.Parse (Console.ReadLine ());
Console.WriteLine (Array.FindAll (s.ToCharArray (), x => x == '1').Length);
}
4: Т. к. строка это Enumerable - можно сделать список, удалить все 0 и получить размер
using System.Collection.Generic;
public static void Main (string[] args)
{
int i = int.Parse (Console.ReadLine ());
List<char> l = new List<char> (s);
l.RemoveAll(x=> x=='0');
Console.WriteLine(l.Count);
}
...Гений (84859)
9 лет назад
Не успел дописать:
Рекурсия:
protected static int Count(int iValue) {
if (iValue != 0) {
int b = iValue & 1;
iValue >>= 1;
return b + Count (iValue);
}
return 0;
}
public static void Main (string[] args)
{
int i = int.Parse (Console.ReadLine ());
Console.WriteLine(Count(i));
}