Как проверить, что число не существует в какой то системе счисления?
Решал задачи для паскаля и тут попалась задача:
C клавиатуры вводится число. Вывести все системы счисления, в которых данное число не существует.
Ломал голову как ее решить. Но что-то не приходит ничего. Это все условие задачи. Может быть кто-может на c# решить это то же подойдет. Просто хочется понять как такое решать. Буду благодарен за ответ.
Ответы (2 шт):
Автор решения: Qwertiy
→ Ссылка
using System.Linq;
Console.WriteLine(String.Join(", ", Enumerable.Range(1, Console.ReadLine().ToUpper().Max(ch => "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".IndexOf(ch))).Skip(1)));
783
2, 3, 4, 5, 6, 7, 8
Надо именно чтобы было число в типе данных integer.
Console.WriteLine
(
x == 0
? "Запись нуля в единичной системе счисления в виде пустой строки сомнительна")
: "Число {0} можно представить в любой системе счисления с положительным основанием",
x
);
Автор решения: Alekcvp
→ Ссылка
Как-то так в итоге получается:
var
number: integer;
digit, max, i: integer;
begin
max := 1;
write('Введите число: ');
readln(number);
number := abs(number);
while number <> 0 do
begin
digit := number mod 10;
if digit > max then
max := digit;
number := number div 10;
end;
writeln('Недопустимые системы счисления:');
if max < 2 then
writeln('Отсутствуют.');
for i := 2 to max do
write(i, ' ');
end.