Число N должно быть на два разряда меньше, то есть уберем из двоичной записи числа 130 два левых разряда:
100000
Теперь попробуем применить к нему алгоритм. Сначала складываются три левых разряда, и остаток от деления на 2 этой суммы запишем в конец числа справа:
1000001
Теперь сложим правые четыре разряда, и остаток от деления этой суммы тоже запишем слева:
10000011
Как мы видим, при числе 1000002 мы получили число 100000112, что на единицу больше, чем число 130. При этом 1000002 = 3210, то есть минимальное возможное N не только для R, которое больше 130, но и по условию задания.
using System;
namespace restless
{
class Program
{
static void Main(string[] args)
{
int N;
bool _isBin = true;
N = Convert.ToInt32(Console.ReadLine());
N = Math.Abs(N);
while (N > 0)
{
if (N % 10 != 0 && N % 10 != 1)
{
_isBin = false;
break;
}
N /= 10;
}
Console.WriteLine(_isBin);
}
}
}
Переведём число 130 в двоичную систему счисления:
13010=100000102
Число N должно быть на два разряда меньше, то есть уберем из двоичной записи числа 130 два левых разряда:
100000
Теперь попробуем применить к нему алгоритм. Сначала складываются три левых разряда, и остаток от деления на 2 этой суммы запишем в конец числа справа:
1000001
Теперь сложим правые четыре разряда, и остаток от деления этой суммы тоже запишем слева:
10000011
Как мы видим, при числе 1000002 мы получили число 100000112, что на единицу больше, чем число 130. При этом 1000002 = 3210, то есть минимальное возможное N не только для R, которое больше 130, но и по условию задания.
ответ: 32