На сайте в режиме реального времени публикуются решения контестных задач сервиса Codeforces.
Загружайте свои решения( здесь ) прямо на сайте. Подробнее. Жду ваших решений
 

По разделам

 

Задача Case 17


Дано целое число в диапазоне 10–40, определяющее количество учебных заданий по некоторой теме. Вывести строку-описание указанного
количества заданий, обеспечив правильное согласование числа со словами «учебное задание», например: 18 — «восемнадцать учебных заданий»,
23 — «двадцать три учебных задания», 31 — «тридцать одно учебное задание».

Код (C/C++)

#include <stdio.h>
 
int main(void)
{
   int n;
   printf("кол-во:") ;
   scanf ("%i", &n);
 
   if (n/10==1)
        switch (n) {
        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/10) {
            case 2:
                printf("двадцать ");
                break;
            case 3:
                printf("тридцать ");
                break;
            case 4:
                printf("сорок ");
                break;
        }
 
        switch (n%10) {
        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;
        }
 
        switch (n%10) {
        case 0:
        case 5:
        case 6:
        case 7:
        case 8:
        case 9:
            printf("учебных заданий.\n");
            break;
        case 1:
            printf("учебное задание.\n");
            break;
        case 2:
        case 3:
        case 4:
            printf("учебных задания.\n");
            break;
        }
  }
   return 0;
}

Код (Python)

import random

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

desyatki = {
    10 : 'десять',
    20 : 'двадцать',
    30 : 'тридцать',
    40 : 'сорок'
}

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

try:
    N = random.randrange(10,41)
    #N = 40
    print("N = ",N)
    if 10 < N and N < 20:
        print("{0} учебных заданий".format(dcat[N]))
    else:
        r = N%10
        print("r = ",r)
        if r == 0:
            print("{0} учебных заданий".format(desyatki[N]))
        else:
            q = int(N/10)*10
            print("q = ",q)
            print("{0} {1}".format(desyatki[q], edinici[r]))

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

Код (Pascal)

program Case17;
var
  N:Integer;
begin
  Write('Кол-во: ');
  Readln(N);
  if (N div 10) = 1 then
  begin
   case N 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 div 10 of
     2:write('двадцать ');
     3:write('тридцать ');
     4: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;
 
    case N mod 10 of
     0,5,6,7,8,9:write('учебных заданий.');
     1:write('учебное задание.');
     2,3,4:write('учебных задания.');
    end;
   end;
end.
									




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

Комментарии

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