=============================================================================

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

=============================================================================


image

Информатика (4.6k баллов) | 96 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1377 от 19.01.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var n:integer;
  repeat
    n:=ReadInteger;
    if n>0 then begin
      var d:=false; // нужны цифры
      var a:=false; // нужны буквы
      repeat
        var r:=n mod 16;
        if r in [0..9] then d:=true
        else a:=true;
        n:=n div 16
      until (d and a) or (n=0);
      if a and d then Writeln(3)
      else
        if a then Writeln(1)
        else Writeln(2);
      n:=-1 // чтобы из цикла не выйти
      end
  until n=0
end.

Пример
13
1
15
1
9
2
27
3
0
(150k баллов)
0 голосов

#include

using namespace std;

int main() {
  int n = -1;
  while(!n) {
    int numbers = 0, letters = 0;
    cin >> n;
    for(; !n || (numbers && letters); n/=16) {
       if(n%16 < 10) numbers = 1;
       else letters = 1; 
    }
    if(numbers&&letters) cout << 3 << endl;<br>    else if(numbers) cout << 1 << endl;<br>    else if(letters) cout << 2 << endl;<br>  }
}
     

(4.6k баллов)