Некоректен отговор при побитови перации!
Проблемът е следният:
Решавам последната задача на кандидатстудентският изпит от 11 april 2014 morning.
Разгледах авторовите решения и измислих друг начин за решение, но нещо ми куца много грозно :(
Пращам само това, което не работи както трябва:
using System;
namespace letters
{
class MainClass
{
public static void Main (string[] args)
{
ulong n = ulong.Parse (Console.ReadLine ());
int result = 0;
int i;
for (i = 0; i < 64; i++) {
if ((n & (1u << i)) != 0) {
result++;
Console.Write (i+ " ");
}
}
Console.WriteLine (result);
}
}
}
При въвеждане на 165 ми изписва като отговор: 0 2 5 7 32 34 37 39 8, където посленото число трябва да е броят на 1-ците в двоичното представяне на 165, а останалите числа трябва да са позициите на 1-ците. Реално 1-ците са 4 на брой, а позициите са 0 2 5 и 7. Къде греша?
П.П. Поради пуста немотия и зачитане на авторските права използвам Ubuntu и Monodevelop.