Приветствую помогите с данной задачей.
Условие - Составьте программу которая учитывает все варианты, все цифры в четырехзначном числе,положении возрастания затем в порядке убывания и выводит в качестве результата сумму 3 чисел(Начальное число, число с цифрами по возрастанию, число с цифрами по убыванию).Цифры в числе не должны быть равны, если же они равны,то "WriteLn('Ошибка');"
Данные:
Входные 2576.
Выходные 12756.
Начало я уже написал, главная проблема с условиями.
Program Test;
Var a,a1,a2,a3,a4,b,c:integer;
Begin
ReadLn(a);
a1:=a div 1000;
a2:=a div 100 mod 10;
a3:=a div 10 mod 10;
a4:= a mod 10;
if (a1=a2) or (a2=a3) or (a2=a4) or (a1=a3) or (a1=a4) or (a3=a4) then WriteLn('Ошибка')
else ...
Буду благодарен всем представленным решениям и советам.
Спасибо
Answers & Comments
Const SIZE As Integer = 4
Dim a, sum As Integer
a = Console.ReadLine()
sum = a
Dim n(SIZE) As Integer
For i = 1 To SIZE
n(i) = a Mod 10
a \= 10
Next
For i = 1 To SIZE
For j = i + 1 To SIZE
If n(i) > n(j) Then
Dim t As Integer
t = n(i)
n(i) = n(j)
n(j) = t
ElseIf n(i) = n(j) Then
Console.WriteLine("Ошибка")
Exit Sub
End If
Next
Next
For i = 1 To SIZE
sum += (n(i) + n(SIZE - i + 1)) * 10 ^ (i - 1)
Next
Console.WriteLine(sum)
Console.ReadKey()