求计算杨辉三角(pascal三角)第N层 的各项数的 末位数的 方程!

来源:百度知道 编辑:UC知道 时间:2024/06/30 20:39:34
N的范围是 0<n<=100000

先来找找规律:
第一层:1 和=1
第二层:1 1 和=2
第三层:1 2 1 和=4
第三层:1 3 3 1 和=8
可以得到
第n层:和=2^(n-1)

在找一下2^(n-1)个位的规律:
1 [2 4 8 6] [2 4 8 6] [2 4 8 6] [2 4 8 6]
有循环

末位=
1 (n=1)
2 (n mod 4=2)
4 (n mod 4=3)
8 (n mod 4=0)
6 (n mod 4=1)

你好像不是要Pascal代码,不过已经写了……
const
a:array [1..4] of byte=(2,4,8,6);
var
n:longint;
begin
readln(n);
if n=1 then writeln(1)
else writeln(a[(n-2) mod 4+1]);
end.

为了输出三角形,我们将中心线位置定在40格处。每一行的第一个值应往左移3格,最大数是3位整数,每个数之间留3个空格,因此输出值的场宽可以定义为6。

PROGRAM T75_009;
VAR
m,n,c:integer;
BEGIN
writeln;
FOR m:=0 TO 1000 DO
BEGIN
c:=1;
write(c:40-3*m);
FOR n:=1 TO m DO
BEGIN
c:=c*(m-n+1) DIV n;
write(c:6);
END;{FOR-2}
writeln
END;{FOR-1}
END.