Hãy mô tả thuật toán tìm số tự nhiên N nhỏ nhất để tích các số tự nhiên từ 1 đến N lớn hơn 1000000. Sau đó hãy viết công thức Pascal tương ứng cho thuật toán đó
Viết CT nhập vào số N nguyên. Nếu nhập N <0 thì yêu cầu nhập kaij. Sau đó in ra màn hình tích các số từ 1 đến N
C1:
Đáp án:…
Giải thích các bước giải:
MTTT:
B1: N:=1; S;=1;
B2: Nếu S>1000000 thì ->B4
B3: N:= N+1; S:=S*n;
B4: In ra màn hình kết quả của N và S và kết thúc TToan
C2:
Đáp án:…
Giải thích các bước giải:
Uses crt;
Var n, S:longint;
Begin
Clrscr;
Repeat
Writeln(‘Nhap so n: ‘); Readln(n);
Until n>0;
S:=1;
While n>0 do
begin
S:=S*n;
n:=n-1;
End;
Writeln(‘Vay tich cua chung la : ‘S);
Readln
End.
*Nhớ tick cho mình nhé! Thanks so much! :D*
Bài 1:
Thuật toán:
B1: n:=1; S:=1;
B2: Nếu S>1000000 thì chuyển đến B4
B3: n:=n+1; S:=S*n; Quay lại B2
B4: In N và S. Kết thúc
Chương trình:
program tim_n;
uses crt;
var n,s:longint;
begin
clrscr;
n:=1; S:=1;
while S<=1000000 do
begin
n:=n+1;
S::=S*n;
end;
write(‘n= ‘,n,’ va khi do S= ‘,s);
readln;
end.
Bài 2:
program tich_N;
uses crt;
var N,i:integer;
tich:int64;
begin
clrscr;
repeat
write(‘Nhap n: ‘); readln(n);
if n<0 then writeln(‘Nhap lai! ‘);
until n>=0;
if n=0 then tich:=0
else
begin
tich:=1;
for i:=1 to n do
tich:=tich*i;
end;
write(‘Tich cac so tu 1 den ‘,n,’ la: ‘,tich);
readln;
end.