Правильный ответ : 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
elyashatdinova
27.04.2023
1. var i,n,c: integer; var a: array of integer; var b: array of integer; begin c: =0; readln(n); setlength(a,n); setlength(b,n); for i: =0 to a.length-1 do begin readln(a[i]); if a[i] > 0 then begin b[c]: =a[i]; c: =c+1; end; end; setlength(b,c); write(b); end. 2. var n,m: integer; type a = array of array of integer; var matr: a; function creatematrix(n,m: integer): a; begin setlength(result,n); for var i: =0 to n-1 do setlength(result[i],m); end; procedure fillmatrbyread(matr: a); begin for var i: =0 to matr.length-1 do for var j: =0 to matr[0].length-1 do readln(matr[i,j]); end; procedure writematrix(matr: a); begin for var i : = 0 to matr.length-1 do begin for var j : = 0 to matr[0].length-1 do write(matr[i,j]: 3); writeln; end; end; procedure matrixzero(matr: a); begin for var i : = 0 to matr.length-1 do begin for var j : = 0 to matr[0].length-1 do if (matr[i,j] = 0) then write('matr','[',i,',',j,']'); writeln; end; end; begin readln(n,m); matr: = creatematrix(n,m); fillmatrbyread(matr); writematrix(matr); matrixzero(matr); end.