PDA

View Full Version : Giai thừa chập-pas



adslchip
28-09-2010, 18:29
Bài này tưởng dễ nhưng ko được dễ cho lắm, mời mọi người chỉ giáo thêm:

Tính giai thừa chập số n (2*4*6*...*n) nếu n chẵn (1*3*5*...*n) nếu n lẻ. Và n là số nguyên lớn.(n<=1000)

Mình đã có sẵn những hàm sau:
Chuyen(n): chuyển từ dạng số sang chuỗi
NhanN(a,b): a b là 2 chuỗi số, hàm cho ra 1 xâu kết quả

2 cái hàm ở trên đã có sẵn rồi.

[=========> Bổ sung bài viết <=========]

Mình làm for i:=1 to n rồi if chẵn if lẻ mà ko ra

jdkhang
28-09-2010, 23:44
Bài làm:



Program GiaiThuaChap;
Uses Crt;
Var n, nstart : Word;
result, current : String;

(*
Input: n as Word
Output: n as String
*)
Function Chuyen(n: Word): String;
Begin
...
End;

(*
Input: a, b as String
Output: result of a*b, as String
*)
Function NhanN(a, b: String): String;
Begin
....
End;

BEGIN
Clrscr;
Write('Nhap n = '); Readln;

If n mod 2 = 0 Then
nstart := 2;
Else
nstart := 1;

result := '1';
While (nstart <= n) do
Begin
current := Chuyen(nstart);
result := NhanN(result, current);
nstart := nstart + 2;
End;

Writeln('Result = ', result);
Readln;
END.

Heroboss12
19-10-2010, 14:36
Dòng code của bạn chưa nhập n làm sao mà nó chạy được