Дано натуральное число. Найти первую цифру числаProgram z1; Var n:longint; Begin assign(input,'input.txt'); открытие файла input.txt для чтения reset(input); assign(output,'output.txt'); открытие файла output.txt для записи rewrite(output); read(n); while n>9 do условие n>9 для того, чтобы оставить одну цифру в числе n:=n div 10; отрезаем цифру write(n); close(output); End Дано натуральное число. Найти вторую цифру числа Program z2; Var n:longint; Begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); read(n); while n> 99 do условие n> 99 для того, чтобы оставить две цифры в числе n:=n div 10; write(n mod 10); close(output); End Дано натуральное число. Найти сумму цифр числа Program z3; Var n,s:longint; Begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); read(n); s:=0; while n>0 do пока в числе есть цифры begin inc(s,n mod 10); добавляем цифру в сумму n:=n div 10; end; write(s); close(output); End. Дано натуральное число. Найти количество цифр числа Program z4; Var n,kol:longint; Begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); read(n); kol:=0; while n>0 do begin inc(kol); считаем цифру n:=n div 10; end; write(kol); close(output); End. Дано натуральное число с нечетным количеством цифр. Найти среднюю цифру числа Program z5; Var n,m,kol,i:longint; Begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); read(n); m:=n; делаем копию числа kol:=0; while m>0 do находим количество цифр в числе begin inc(kol); m:=m div 10; end; kol:=kol div 2; находим количество цифр, которые надо отрезать for i:=1 to kol do отрезаем лишние цифры и средняя цифра становится n:=n div 10; в числе последней write(n mod 10); выводим ее close(output); End. Дано натуральное число. Выяснить является ли оно палиндромом, то есть читается справа налево и слева направо одинаково Program z6; Var n,m,k,:longint; Begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); read(n); m:=n; делаем копию числа k:=0; while m>0 do получаем число, записанное теми же цифрами в обратном порядке begin k:=k*10+m mod 10; m:=m div 10; end; if k=n then write(‘YES’) выводим результат else write(‘NO’); close(output); End. Дано натуральное число. Выяснить соотношение между количествами двоек и пятерок в этом числе Program z7; Var n,k2,k5,:longint; Begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); read(n); k2:=0;k5:=0; while n>0 do begin if n mod 10=2 then inc(k2); если последняя цифра 2, то считаем ее if n mod 10=5 then inc(k5); если последняя цифра 5, то считаем ее n:=n div 10; end; if k2=k5 выводим результат then write(‘k2=k5’) else if k2>k5 then write(‘k2>k5’) else write(‘k2<k5’); close(output); End. 8. Поменять местами первую и последнюю цифры данного натурального числа (9<N<2*109) Можно решить эту задачу, работая только в числовом формате. Но решение получается громоздким и некрасивым. Проще перевести число в строковой формат, а потом обратно. Вот это решение. program obmencifr1; Var i,p,n:longint; s:string; c:char; cod:integer; Begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); read(n); str(n,s); переводим в строковой формат c:=s[1]; изображение первой цифры сохраняем в с s[1]:=s[length(s)]; последний символ ставим на первое место s[length(s)]:=c; а первый на последнее val(s,n,cod); переводим строку в числовой формат write(n); выводим результат close(output); End. Можно все цифры числа поместить в одномерный массив, поменять местами первую и последнюю цифры и потом собрать все цифры в число. Вот это решение. program obmencifr2; const nmax=10; Var a:array[1..nmax] of byte; i,j,p,n:longint; Begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); read(n); i:=0; while n>0 do цифры числа записываем в массив begin inc(i); a[i]:=n mod 10; n:=n div 10; end; p:=a[1]; меняем местами первый и последний элементы массива a[1]:=a[i]; a[i]:=p; for j:=i downto 1 do собираем цифры массива в число n:=n*10+a[j]; write(n); выводим результат close(output); End.
|