Переведите пожалуйста код с Pascal на C# (количество разных цифр)
Формулировка задачи:
Решение задачи: «Переведите пожалуйста код с Pascal на C# (количество разных цифр)»
textual
Листинг программы
using System; class Program { public static void Main() { int n = Int32.Parse(Console.ReadLine()); int d = 0; do d |= 1 << n % 10; while ((n /= 10) != 0); do ++n; while ((d &= d - 1) != 0); Console.WriteLine(n); } }
Объяснение кода листинга программы
- Программа запрашивает у пользователя ввод числа (переменная n).
- Инициализирует переменную d равной 0.
- Использует цикл do-while для подсчета количества цифр числа, начиная с наибольшей (переменная d |= 1 << n % 10)).
- Использует цикл do-while для удаления последней цифры числа (переменная n /= 10).
- Использует цикл do-while для установки первой цифры числа равной 1 (переменная d &= d - 1).
- Выводит результат (переменная n).