#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;
}
1) тк не уточнила загружаем из файла, или вводим с клавиатуры, получай с этими двумя функциями. в каталоге с программой должен быть файлик .txt
var a,filename:string[255];
chk,i,res:integer;
f1:Text;
begin
res:=0;
chk:=0;
Writeln('1. Input line');
Writeln('2. Load from file');
Readln(chk);
if chk=1 then
begin
Writeln('Input line: ');
Readln(a);
for i:=1 to Length(a) do
if a[i]='.' then
res:=res+1;
Writeln('Result: ',res);
end;
if chk=2 then
begin
writeln('Input name of file: ');
Readln(filename);
filename:=filename+'.txt';
Assign (f1, filename);
Reset(f1);
while not eof (f1) do
begin
readln (f1, a);
writeln(a);
for i:=1 to Length(a) do
if a[i]='.' then
res:=res+1;
end;
Writeln('Result: ',res);
Close (f1);
end;
readln;
end.
2) вводим не запятую, а точку, как разделитель частей числа
var a,substr:string[100];
x,res,i:integer;
begin
writeln('Input number:');
Readln(a);
substr:='.';
x:=Pos(substr,a);
for i:=1 to x-1 do
res:=res+strtoint(a[i]);
Writeln('Result of first part: ',res);
res:=0;
for i:=x+1 to Length(a) do
res:=res+StrToInt(a[i]);
Writeln('Result of second part: ',res);
readln;
end.
Раскладывая по степеням 2 получим
10001001=1*1+0*2+0*4+1*8+0*16+0*32+0*64+1*128=1+8+128=137
Значит двоичному числу 10001001 соответствует десятичное 137