Пусть _ заменяет любую букву из набора К, А, Т и Е. Тогда все удовлетворяющие условию слова можно поделить на группы:
- РР_ (есть 4 слова такого вида, их можно получить, подставляя на место _ буквы из набора)
- Р_Р (4 слова)
- _РР (4 слова)
- РРР (одно слово)
Всего получается 4 + 4 + 4 + 1 = 13 слов.
<em>// PascalABC.NET 3.3, сборка 1555 от 21.10.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
ReadlnString.Reverse.Println
end.
<u>Пример</u>
рука
акур
Ответ: 4кг 800грамм
Объяснение: Сори, я просто не умею через дано(
#include <iostream>
using namespace std;
typedef unsigned short int USI;
int main() {
/* инициализация */
USI n;
cout << "Количество учеников: ";
cin >> n;
USI a[n], g[n], f[n];
/* заполнение массивов */
size_t i;
for(i = 0; i < n; i++) {
cout << "Оценки ученика "
<< (i+1) << ":\n\n";
cout << "Алгебра: ";
cin >> a[i];
cout << "Геометрия: ";
cin >> g[i];
cout << "Физика: ";
cin >> f[i];
cout << "\n-----\n\n";
}
cout << "\n-----\nРЕЗУЛЬТАТЫ\n-----\n\n";
/* Средняя оценка по алгебре */
USI sum = 0;
for(i = 0; i < n; i++) {
sum += a[i];
}
cout << "Средняя оценка по алгебре: "
<< (sum/n) << '\n';
/* Количество учеников без двоек */
USI notwo = 0;
for(i = 0; i < n; i++) {
if ( (a[i] <= 2)
|| (g[i] <= 2)
|| (f[i] <= 2)
) {
continue;
}
else {
notwo++;
}
}
cout << "Учеников без двоек: "
<< notwo << '\n';
return 0;
}
Const n = 40;
var a:array [1..n] of integer;
i:integer;
begin
for i:=1 to 10 do a[i]:=random(21);
for i:=11 to 20 do a[i]:=random(51)-10;
for i:=21 to 30 do readln(a[i]);
for i:=31 to 40 do a[i]:=a[i-2]+a[i-1];
for i:=1 to 40 do write(a[i],' ');
end.
Тестовое решение:
1
2
3
4
5
6
7
8
9
0
13 15 17 14 3 2 20 7 14 8 29 34 28 9 7 32 36 -2 16 22 1 2 3 4 5 6 7 8 9 0 9 9 18 27 45 72 117 189 306 495