Переведите пожалуйста код с 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);
    }
}

Объяснение кода листинга программы

  1. Программа запрашивает у пользователя ввод числа (переменная n).
  2. Инициализирует переменную d равной 0.
  3. Использует цикл do-while для подсчета количества цифр числа, начиная с наибольшей (переменная d |= 1 << n % 10)).
  4. Использует цикл do-while для удаления последней цифры числа (переменная n /= 10).
  5. Использует цикл do-while для установки первой цифры числа равной 1 (переменная d &= d - 1).
  6. Выводит результат (переменная n).

Оцени полезность:

15   голосов , оценка 3.4 из 5
Похожие ответы