Номер цифри

Дано натуральне число. З нього викреслюють одну цифру. Яку саме цифру потрібно викреслити з цього числа, щоб після цього отримати максимально можливе число?

Формат вхідних даних: у єдиному рядку записано єдине ціле число N(11 ≤N< 1 000 000 000).

Формат вихідних даних: номер ви­кресленої цифри, за умови, що цифра в найстаршому розряді має номер 1.

Ідея розв’язання. Розв’яжемо задачу очевидним способом: будемо викреслювати з числа по черзі одну цифру. З отриманих чисел вибере­мо найбільше і запам’ятаємо номер викресленої цифри (перший розв’язок).

Але є цікавіше розв’язання. Будемо рухатися по числу від більшого розряду до меншого і шукати таку цифру, яка менша за цифру сусіднього меншого розряду. Саме цю цифру і слід викреслити, оскільки у більшому розряді місце викресленої цифри займе принаймні не менша зліва цифра. Якби зліва була менша цифра, то ми викреслити б її. Якщо ж цифри числа утворюють спадну послідовність або всі цифри однакові, то, очевидно, слід викреслити саму крайню праворуч цифру.

TextWindow.Title="Номер цифри"
TextWindow.WriteLine("Введіть число n")
n=TextWindow.ReadNumber()
MyMax=n/10
Numb=1
Kol=1
M=n/10
T=math.Remainder(n,10)
Step1 = 10
N=N/10
While N>1
M=(n/10)*Step1+T
T=(Math.Remainder(n,10))*step1+t
If M>MyMax Then
MyMax=m
Numb=kol+1
EndIf
kol=kol+1
step1=step1*10
n=n/10
EndWhile
numb=kol-numb+1
TextWindow.WriteLine(numb)
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s