seekdreamer 2012-07-31 09:47:00
点我顶贴
收藏
删除
program ss;
var i,c,n:longint;
begin
readln(n);
c:=1;
for i:=n downto 1 do
begin
c:=c*n;
while ((c mod 10)=0) do c:=(c div 10);
c:=(c mod 10);
end;
writeln(c);
end.
结果只对了第一个点,呜呜
#2 77@2012-07-31 09:47:00
26731
回复
删除
呃 这样做是不对的
每次运算只保留最后一位非零的数进行计算
这样可能出现的结果是
比如说 912 保留 2
然后 进行 乘15
结果分别是 13680 30
是因为乘的时候产生进位导致前一位也为0
n最大200W 进位产生的影响7,8位的样子 所以保留8位非零的进行运算就行了