Правильный ответ : 2017-ое квадратное число = 3194.
проверено в Excel.
Решение:
для начала нужно понять как идут наши числа, то есть понять логику построения.
6 8 9 16 18 19 26 28 29 36 38 39 и т.д. 10-ое квадратное число = 36. значит логика построения верная.
как мы можем увидеть из этого кусочка - после первых трех чисел идут те же числа,но увеличенные на десяток.
в 100 первой сотне всех числе у нас "квадратных" 51 -> весь шестой десяток, весь восьмой и весь девятый,в остальных десятках по 3 числа = 30+7*3 = 51.
Получаем :
100 = 51
200= 102
300 = 153
400 = 204
500 = 255
600 = 355 (так как вся сотня с "квадратной" 6)
700 = 406
800 = 506
900 = 606
1000 = 657
2000 = 657+657=1314
3000 = 1314+657 = 1971
3100 = 1971+51=2022
так как нам нужно 2017-ое число,то идем из конца сотни и находим наше число
=>3194.
Таким образом получаем ответ : 3194
//Pascal ABC.NET 3.1 сборка 1219
Const
n=10;
Var
ar:array[1..n] of integer;
i,j,c:integer;
begin
randomize;
readln(c);
writeln('Array:');
for i:=1 to n do
begin
ar[i]:=random(-10,10);
write(ar[i]:4);
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if (ar[i]>ar[j]) and (ar[i]<0) and (ar[j]<0) and (ar[i] mod c=0) and (ar[j] mod c=0) then swap(ar[i],ar[j]);
writeln;
writeln('Final array:');
for i:=1 to n do
write(ar[i]:4);
end.
Пример ввода:
2
Пример вывода:
Array:
-7 3 9 -2 7 -7 3 -6 -6 -3
Final array:
-7 3 9 -6 7 -7 3 -6 -2 -3
//Pascal ABC.NET Версия 2.2 Сборка 790
var a,i:integer;
s:string;begin;
readln(a);
str(a,s);
if length(s)<>3 then exit;
if pos('3',s)=0 thenbegin;
writeln('Nowhere');
exit;
end;
for i:=1 to length(s) do
if s[i]='3' then writeln(i);
<span>end.
</span>
Пример ввода:
123
Пример вывода:
3
0
0
1
1
b)
0
0
0
0
0
0
0
1
О нет! Что-то пошло не так во время добавления ответа
Слишком коротко.<span> Напишите минимум 20 символов, чтобы объяснить все.</span>