Определите, верно ли, что в заданном четырехзначном числе ровно две одинаковые цифры. ...

0 голосов
358 просмотров

Определите, верно ли, что в заданном четырехзначном числе ровно две одинаковые цифры.
Условный оператор,а также операции сравнения и логический (булевский) тип данных, а также типы данных строка или множество использовать нельзя!
Принимаю на: C++, Python,Pascal или Java.


Информатика (126 баллов) | 358 просмотров
0

Минут через 20 сделаю)

0

жду)

0

А try ... except можно использовать)) (pascalabc.net)

0

???

0

можно

0

правда не пойму зачем он тебе там нужен

0

а вообще вроде не запрещено...значит можно;)

Дан 1 ответ
0 голосов

//PascalABC.NET версия 3.3.5

var  ar: array[0..3] of integer;
  digits: array[0..9] of integer;
  out: array[1..4, 1..7]of integer;

begin
  for var i := 0 to 9 do
    digits[i] := 0;
  var sum := 0;
  for var i := 1 to 2 do
  begin
    out[i][1] := 1053;
    out[i][2] := 1077;
    out[i][3] := 1074;
    out[i][4] := 1077;
    out[i][5] := 1088;
    out[i][6] := 1085;
    out[i][7] := 1086;
  end;
  out[4][1] := 1053;
  out[4][2] := 1077;
  out[4][3] := 1074;
  out[4][4] := 1077;
  out[4][5] := 1088;
  out[4][6] := 1085;
  out[4][7] := 1086;

  out[3][1] := 1042;
  out[3][2] := 1077;
  out[3][3] := 1088;
  out[3][4] := 1085;
  out[3][5] := 1086;
  out[3][6] := 160;
  out[3][7] := 160;
  var num := readinteger('Введите четырехзначное число:');
  ar[3] := num mod 10;
  ar[2] := num div 10 mod 10;
  ar[1] := num div 100 mod 10;
  ar[0] := num div 1000;
  for var i := 0 to 3 do
    digits[ar[i]] += 1;
  for var i := 0 to 9 do
    try
      sum += digits[i] div digits[i];
    except
      on System.DivideByZeroException do   
end; 
for var i := 1 to 7 do
    write(chr(out[sum][i]));
end.

(3.7k баллов)
0

ух

0

вот тебе спасибо

0

помог