четвъртък, 10 януари 2013 г.

Проверка за еднакви цифри в дадено число

Днес дъщеря ми, която е 9 клас в СМГ ме помоли да й проверя задачата, която имаше за домашно по програмиране. Задачата беше следната:


Да се провери дали в дадено число всички цифри са му различни.

Идеята й беше да вземем последната цифра и да проверим дали е различна от предните, после предпоследната и така до края.


Ето го и моето решение:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;

class tests
{

    static void Main()
    {
        int i = 1234567990;
        int j, k, k1;
        bool check = true;
        if (i >= 10) j = i;
        else
        {
            Console.WriteLine("имаме само една цифра");
            return;
        }

        while (j >= 10)
        {
            k = i % 10;
            do
            {
                i = i / 10;
                k1 = i % 10;
                if ((k1 == k) || ((i < 10) && (i == k)))
                {
                    check = false;
                    break;
                }

            }
            while (i >= 10);
            if (check == false)
            {
                Console.WriteLine("Има еднакви цифри");
                return;
            }
            j = j / 10;
            i = j;
            if ((j < 10) && (j == k))
            {
                Console.WriteLine("Има еднакви цифри");
                return;
            }
             
        }
        Console.WriteLine("Няма еднакви цифри"); 
    }
}

Няма коментари:

Публикуване на коментар