#include <iostream>
#include <string>
#include <algorithm>
bool P(int value)
{
std::string left = std::to_string(value);
std::reverse(left.begin(), left.end());
std::string right = std::to_string(value);;
return left == right;
}
int main()
{
int n;
std::cin >> n;
int count = 0;
for (int i = 1; i <= n; ++i)
{
if (P(i))
{
count++;
}
}
std::cout << "Count palindrome: " << count << std::endl;
return 0;
}
---PascalABC.NET 3.6.2 ---
begin
//Создадим переменную A типа List<integer>, задав в конструкторе ёмкость в 20 элементов;
var A : List<integer> := New List<integer>(20);
A.AddRange(SeqGen(A.Capacity, p -> Random(-10, 10))); //Запишем в наш List последовательность, длина которой равна List<T>.Capacity, и каждый элемент в которой генерируется случайно в диапазоне [-10; 10]
A.Println; //Распечатаем в консоль содержимое A
end.
Объяснение:
Заместо стандартного паскалевского массива использован класс List<T> библиотеки .NET Framework, являющийся аналогом обычного массива, но имеющий большее число методов для работы с ним.
А вообще, программа может быть написана в 1 строку:
begin
ArrRandom(20, -10, 10).Println;
end.
a:array of real;
n,i,j:integer;
begin
Randomize;
write('n = ');
readln(n);
writeln('Исходный массив:');
SetLength(a,n);
for i:=0 to n-1 do
begin
a[i]:=10*random;
write(a[i]:6:2);
end;
writeln;
for j:=n div 4 downto 1 do
begin
for i:=4*j to Length(a)-1 do a[i-1]:=a[i];
SetLength(a,Length(a)-1);
end;
for i:=0 to Length(a)-1 do write(a[i]:6:2);
writeln;
end.
Пример:
n = 15
Исходный массив:
8.17 9.96 5.06 9.34 2.91 7.37 3.64 7.22 2.83 3.04 2.02 9.09 0.32 5.10 9.35
8.17 9.96 5.06 2.91 7.37 3.64 2.83 3.04 2.02 0.32 5.10 9.35