Другие языки программирования и технологии
Турбо Паскаль
Ребят, помогите решить задачу пожалуйста!!! програмирование Турбо Паскаль!спасите меня, мне срочно домой надо уехать, а я не могу сдать задачи по информатике, решения есть, но программа радотает не правильно, т е она выдаёт неверные ответы! помогите!!!!Найти все такие N (N<100), что у числа N! сумма цифр – квадрат целого числа.
var
n:integer;
begin
for n:=1 to 99 do
if n<10 then begin
if (sqrt(n)-round(sqrt(n)))=0 then writeln(n);end else
if (sqrt(n div 10 + n mod 10)-round(sqrt(n div 10 + n mod 10)))=0 then writeln(n);
end.
или даже так
var
n:integer;
begin
for n:=1 to 99 do
if (sqrt(n div 10 + n mod 10)-round(sqrt(n div 10 + n mod 10)))=0 then writeln(n);
end.
n:integer;
begin
for n:=1 to 99 do
if n<10 then begin
if (sqrt(n)-round(sqrt(n)))=0 then writeln(n);end else
if (sqrt(n div 10 + n mod 10)-round(sqrt(n div 10 + n mod 10)))=0 then writeln(n);
end.
или даже так
var
n:integer;
begin
for n:=1 to 99 do
if (sqrt(n div 10 + n mod 10)-round(sqrt(n div 10 + n mod 10)))=0 then writeln(n);
end.
const
Size = 40;
var
Num : array [1..Size] of Longint;
procedure InitNum;
var
N : Word;
begin
{ Факториал 0! }
for N := 1 to Size do
Num[N] := 0;
Num[1] := 1;
end;
procedure NextFactorial(N : Word);
var
Index : Word;
Perenos : Longint;
begin
for Index := 1 to Size do
begin
Num[Index] := Num[Index] * N;
Num[Index] := Num[Index] + Perenos;
Perenos := Num[Index] div 10000;
Num[Index] := Num[Index] mod 10000;
end;
if Perenos > 0 then
begin
WriteLn('Произошло переполнение при N=', N, ' !');
Halt;
end;
end;
function SummaCifr : Word;
var
N, Sum : Word;
Temp : Longint;
begin
Sum := 0;
for N := 1 to Size do
begin
Temp := Num[N];
while Temp > 0 do
begin
Sum := Sum + Temp mod 10;
Temp := Temp div 10;
end;
end;
SummaCifr := Sum;
end;
function SquareSum(Sum : Word) : Word;
begin
SquareSum := Trunc(Sqrt(Sum));
end;
procedure OutNum(N : Word);
var
Index : Word;
See : Boolean;
S : String;
begin
Write(N, '! = ');
Index := Size; See := False;
while Index > 0 do
begin
if Num[Index] = 0 then
if See then S := '0000' else S := ''
else begin
Str(Num[Index], S);
if See then while Length(S) < 4 do S := '0' + S;
See := True;
end;
Write(S);
Dec(Index);
end;
WriteLn;
end;
var
N, Sum, Square : Word;
begin
InitNum;
{ Ищем факториалы числа от 1 до 100 }
for N := 1 to 100 do
begin
NextFactorial(N);
Sum := SummaCifr;
Square := SquareSum(Sum);
if Square * Square = Sum then
begin
OutNum(N);
WriteLn('Сумма цифр ', Sum);
WriteLn('Квадрат числа ', Square);
end;
end;
end.
Size = 40;
var
Num : array [1..Size] of Longint;
procedure InitNum;
var
N : Word;
begin
{ Факториал 0! }
for N := 1 to Size do
Num[N] := 0;
Num[1] := 1;
end;
procedure NextFactorial(N : Word);
var
Index : Word;
Perenos : Longint;
begin
for Index := 1 to Size do
begin
Num[Index] := Num[Index] * N;
Num[Index] := Num[Index] + Perenos;
Perenos := Num[Index] div 10000;
Num[Index] := Num[Index] mod 10000;
end;
if Perenos > 0 then
begin
WriteLn('Произошло переполнение при N=', N, ' !');
Halt;
end;
end;
function SummaCifr : Word;
var
N, Sum : Word;
Temp : Longint;
begin
Sum := 0;
for N := 1 to Size do
begin
Temp := Num[N];
while Temp > 0 do
begin
Sum := Sum + Temp mod 10;
Temp := Temp div 10;
end;
end;
SummaCifr := Sum;
end;
function SquareSum(Sum : Word) : Word;
begin
SquareSum := Trunc(Sqrt(Sum));
end;
procedure OutNum(N : Word);
var
Index : Word;
See : Boolean;
S : String;
begin
Write(N, '! = ');
Index := Size; See := False;
while Index > 0 do
begin
if Num[Index] = 0 then
if See then S := '0000' else S := ''
else begin
Str(Num[Index], S);
if See then while Length(S) < 4 do S := '0' + S;
See := True;
end;
Write(S);
Dec(Index);
end;
WriteLn;
end;
var
N, Sum, Square : Word;
begin
InitNum;
{ Ищем факториалы числа от 1 до 100 }
for N := 1 to 100 do
begin
NextFactorial(N);
Sum := SummaCifr;
Square := SquareSum(Sum);
if Square * Square = Sum then
begin
OutNum(N);
WriteLn('Сумма цифр ', Sum);
WriteLn('Квадрат числа ', Square);
end;
end;
end.
Похожие вопросы
- Какую программу (Паскаль) использовать в учебных целях, чтоб была овместима с файлами от "Турбо Паскаль"? В которых
- вопрос по турбо паскалю
- Помогите написать 2 програмки на Турбо Паскале.
- Я в турбо паскале запис-ю текст порусски в текстовик, открываю его вне ТП, а там фигня какая-то. Что мне делать?
- Помогите решить, пожалуста (ТУрбо Паскаль)
- Помогите решить задачу на Турбо паскале
- Игра в турбо паскале Киньте программу на любую игру в турбо паскале
- Чем отличаются паскаль и турбо паскаль? (это типа компилятор для языка паскаль?)
- Программа на Паскаль ABC( Турбо Паскаль тоже можно)
- Турбо-паскаль. Пожалуйста, напишите программный код!...=)