切换到宽版
  • 7384阅读
  • 8回复

TJU1016 [复制链接]

上一主题 下一主题
离线waterman
 
只看楼主 倒序阅读 0 发表于: 2005-11-01
文字用什么算法好,高精度好象不行,请大牛指教!
离线李逍遥
只看该作者 1 发表于: 2005-11-02
转换成ASCII码值再算
离线tangyouze
只看该作者 2 发表于: 2005-11-03
看maigo 的题解吧
离线byteyang
只看该作者 3 发表于: 2005-11-03
这个数据范围时小于extended范围
又因为我们只要前面第二个数,我们知道
extended只是在表示数据的时候不够精确,但是在计算的时候还是比较正确的
我们就直接用extended计算,然后我们找第二个数字
离线byteyang
只看该作者 4 发表于: 2005-11-03
{$N+}
var
a:extended;
i,n,m:longint;
j,k,l,o:integer;
procedure try;
var s:string;
begin
  a:=1;
  for i:=1 to n do
    begin
      a:=a*i;
      if a>10e20 then a:=a/10e20;
    end;
  str(a,s);
  while s[1]=' ' do
    delete(s,1,1);
  writeln(s[3]);
end;
begin
  readln(m);
  for o:=1 to m do
    begin
        readln(n);
        try;
    end;
end.
离线fx19880617
只看该作者 5 发表于: 2005-11-06
const
maxn=100000;
var
ans:array[4..maxn]of byte;
f:real;
m,i,n:longint;
begin
f:=6;
for i:=4 to maxn do begin
  f:=f*i;
  while f>100 do f:=f/10;
  ans:=trunc(f) mod 10;
end;
read(m);
for i:=1 to m do begin
  read(n);
  writeln(ans[n]);
end;
end.
离线telepathy
只看该作者 6 发表于: 2005-11-19
用real乘最后取得第二位。
离线wcwswswws
只看该作者 7 发表于: 2006-01-21
tju前20题啊...都有人问啊...
离线ggbb
只看该作者 8 发表于: 2006-05-20
弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱弱
快速回复
限100 字节
 
上一个 下一个