По разделам



Задача Case 18


Дано целое число в диапазоне 100–999. Вывести строку-описание
данного числа, например: 256 — «двести пятьдесят шесть», 814 — «восемьсот четырнадцать».

Код (C/C++)

#include <stdio.h>
 
int main(void)
{
   system("chcp 1251");
   int n;
   printf("Число:") ;
   scanf ("%i", &n);
 
   switch (n/100) {
   case 1:
       printf("сто ");
       break;
   case 2:
       printf("двести ");
       break;
   case 3:
       printf("триста ");
       break;
   case 4:
       printf("четыреста ");
       break;
   case 5:
       printf("пятьсот ");
       break;
   case 6:
       printf("шестьсот ");
       break;
   case 7:
       printf("семьсот ");
       break;
   case 8:
       printf("восемьсот  ");
       break;
   case 9:
       printf("девятьсот  ");
       break;
   }
 
   if ((n%100)/10==1)
        switch (n%100) {
        case 10:
                printf("десять\n");
                break;
            case 11:
                printf("одинадцать\n");
                break;
        case 12:
                printf("двенадцать\n");
                break;
        case 13:
                printf("тринадцать\n");
                break;
        case 14:
                printf("четырнадцать\n");
                break;
        case 15:
                printf("пятнадцать\n");
                break;
        case 16:
                printf("шестнадцать\n");
                break;
        case 17:
                printf("семнадцать\n");
                break;
        case 18:
                printf("восемнадцать\n");
                break;
        case 19:
                printf("девятнадцать\n");
                break;
        }
    else {
        switch ((n%100)/10) {
            case 2:
                printf("двадцать ");
                break;
            case 3:
                printf("тридцать ");
                break;
            case 4:
                printf("сорок ");
                break;
            case 5:
                printf("пятьдесят ");
                break;
            case 6:
                printf("шестьдесят ");
                break;
            case 7:
                printf("семьдесят ");
                break;
            case 8:
                printf("восемьдесят ");
                break;
            case 9:
                printf("девяносто ");
                break;
        }
 
        switch (n%10) {
        case 1:
            printf("один\n");
            break;
        case 2:
            printf("два\n");
            break;
        case 3:
            printf("три\n");
            break;
        case 4:
            printf("четыре\n");
            break;
        case 5:
            printf("пять\n");
            break;
        case 6:
            printf("шесть\n");
            break;
        case 7:
            printf("семь\n");
            break;
        case 8:
            printf("восемь\n");
            break;
        case 9:
            printf("девять\n");
            break;
        }
  }
   return 0;
}

Код (Python)

import random

edinici  = {
    1 : 'один',
    2 : 'два',
    3 : 'три',
    4 : 'четыре',
    5 : 'пять',
    6 : 'шесть',
    7 : 'семь',
    8 : 'восемь',
    9 : 'девять'
}

dcat = {
    11 : 'одиннадцать',
    12 : 'двенадцать',
    13 : 'тринадцать',
    14 : 'четырнадцать',
    15 : 'пятнадцать',
    16 : 'шестнадцать',
    17 : 'семнадцать',
    18 : 'восемнадцать',
    19 : 'девятнадцать',
}

desyatki = {
    10 : 'десять',
    20 : 'двадцать',
    30 : 'тридцать',
    40 : 'сорок',
    50 : 'пятьдесят',
    60 : 'шестьдесят',
    70 : 'семьдесят',
    80 : 'восемьдесят',
    90 : 'девяносто',
}

sotni = {
    100 : 'сто',
    200 : 'двести',
    300 : 'триста',
    400 : 'четыреста',
    500 : 'пятьсот',
    600 : 'шестьсот',
    700 : 'семьсот',
    800 : 'восемьсот',
    900 : 'девятьсот',
}
try:
    N = random.randrange(100,999)
    #N = 911
    propis = ''
    print("N = ",N)
    q = int(N/100)*100
    propis += sotni[q]
    #print(propis)
    N -= q 
    if 10 < N and N < 20:
        propis += ' ' + dcat[N]
    else:
        r = N%10
        #print("r = ",r)
        q = int(N/10)*10
        #print("q = ",q)
        if q !=0:
            propis += ' ' + desyatki[q]
        if r != 0:
            propis += ' ' + edinici[r]

    print(propis)

except KeyError as e:
    print('Ошибка',e)
									

Код (Pascal)

program Case18;
var
  N:Integer;
begin
  Write('Введите число: ');
  Readln(N);
 
  case N div 100 of
   1:write('сто ');
   2:write('двести ');
   3:write('триста ');
   4:write('четыреста ');
   5:write('пятьсот ');
   6:write('шестьсот ');
   7:write('семьсот ');
   8:write('восемьсот ');
   9:write('девятьсот ');
  end;
 
  if ((N mod 100) div 10)=1 then
   begin
    case N mod 100 of
     10:write('десять');
     11:write('одинадцать');
     12:write('двенадцать');
     13:write('тринадцать');
     14:write('четырнадцать');
     15:write('пятнадцать');
     16:write('шестнадцать');
     17:write('семнадцать');
     18:write('восемнадцать');
     19:write('девятнадцать');
    end
   end
  else
   begin
    case ((N mod 100) div 10) of
     2:write('двадцать ');
     3:write('тридцать ');
     4:write('сорок ');
     5:write('пятьдесят ');
     6:write('шестьдесят ');
     7:write('семьдесят ');
     8:write('восемьдесят ');
     9:write('девяносто ');
    end;
    case N mod 10 of
     1:write('один');
     2:write('два');
     3:write('три');
     4:write('четыре');
     5:write('пять');
     6:write('шесть');
     7:write('семь');
     8:write('восемь');
     9:write('девять');
    end;
   end;
end.
									




Case. Абрамян
Case 1 Просмотров: 12
Case 2 Просмотров: 14
Case 3 Просмотров: 16
Case 4 Просмотров: 18
Case 5 Просмотров: 7
Case 6 Просмотров: 12
Case 7 Просмотров: 10
Case 8 Просмотров: 16
Case 9 Просмотров: 8
Case 10 Просмотров: 13
Case 11 Просмотров: 15
Case 12 Просмотров: 13
Case 13 Просмотров: 9
Case 14 Просмотров: 11
Case 15 Просмотров: 13
Case 16 Просмотров: 15
Case 17 Просмотров: 14
Case 18 Просмотров: 12
Case 19 Просмотров: 13
Case 20 Просмотров: 8

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться