const
N=5;
var
a:array [1..N] of integer;
i,k,count:integer;
begin
for i:=1 to N do
begin
a[i]:=random(20);
write(a[i]);
end;
for i:=1 to N do
begin
count:=0;
k:=2;
if a[i] < 2 then count:=1;
while (k*k<=a[i]) and (count = 0) do
begin
if a[i] mod k = 0 then inc(count);
inc(k);
end;
if count = 0 then write(i);
end;
end.
Ну тут совсем всё просто:
Смотрим на входные данные, исходное слово "апельсин", а зашифрованное "твчюодыа".
Вспоминаем принцип шифра "Цезаря", что бы зашифровать текст, необходимо определить сдвиг по алфавиту, так называемый "корень". То есть, если корень равен 3, то все буквы А в исходном послании заменятся на (сдвигаемся по алфавиту на 3 буквы вправо) букву Г. Но что делать если мы шифруем букву Ю? Считаем сдвиг Ю - Я это 1, а дальше просто "прыгаем" в начало алфавита Я - А это 2, А - Б это 3, следовательно при ключе 3 буква Ю станет буквой Б.
В нашем случаи все что нужно, так это проверить, на сколько букв сместилась буква "а", в слове "апельсин", что превратилась в букву "т", в слове "твчюодыа".
Смотрим по даному алфавиту и считаем количество сдвигов, это будет 19. Теперь провевим, что если сдвинуть остальные буквы в слове апельсин на 19 символов вправо по алфавиту, если они будут соответствовать зашифрованым, то мы нашли корень правильно.
В нашем случаи именно так и есть, то есть ответ задачи ключь = 19.
while n <= m do n := 1;
while n > m do n := 0;
write(n);
Если n <= m, то n = 1,
если n > m, то n = 0 (любое число)
При этом условные операторы использованы не будут.
Есть вариант попроще: write(ord(n <= m))
Если n <= m, то будет выведено 1 (порядковый номер true), иначе будет выведено 0 (порядковый номер false)
#include<iostream>
using namespace std;
int main(){
int s;
cin>>s;
for (int i; i=10; i<100){
if ((i%10+(i-i%10)/10)==s) cout<<i;
}
return 0;
}
На олимпиаде по математике предлагались задачи 3 типов. За задачу первого типа участник получил 1 балл, за задачу второго типа - 2 балла, за задачу<span> ответ А</span>