回 帖 发 新 帖 刷新版面

主题:新手问个问题(答出20+30分)

输入2个数A,B,(0<A,B<50)输出  
A!/(B!*(ABS(A-B)!))[em18][em18][em18]

回复列表 (共23个回复)

11 楼

建议:
program t1;
var
  a:array[1..2000]of integer;
  n,i,s:integer;
function sti(n:integer):integer;
  var
   m,i,s;integer;
  bagin
     s:=1;
    for i;=1 to n do
     s:=s*i;
    sti:=s;
  end;
begin
  read(a);
  read(b);
  write(sti(a));
  write(sti(b));
  write(sti(a+b));
  writeln;
end.

12 楼

二楼的,这要用高精度

13 楼

ooo

14 楼

不是很难呀!

15 楼


好简单的咧

16 楼


阶乘一般都要用高精度吧  因为数字都很大[em12]

17 楼

Var
  a,b,i,f,g:integer;
  c,d,e,m:real;
Begin
  Repeat
   Readln(a,b)
  Until (a>0) and (0<b<50);  
  c:=1;
  d:=1;
  e:=1;
  For i:=a downto 1 do
    c:=c*i;                 
  For i:=b downto 1 do
    d:=d*i;                  
  f:=a-b;
  For i:= f downto 1 do
    e:=e*i;                 
  g:=abs(e);   
  m:=c/(d*g);
  Writeln(m);
End.

18 楼

Var
  a,b,i,f,g:integer;
  c,d,e,m:real;
Begin
  Repeat
   Readln(a,b)
  Until (a>0) and (0<b<50);  
  c:=1;
  d:=1;
  e:=1;
  For i:=a downto 1 do
    c:=c*i;                 
  For i:=b downto 1 do
    d:=d*i;                  
  f:=a-b;
  For i:= f downto 1 do
    e:=e*i;                 
  g:=abs(e);   
  m:=c/(d*g);
  Writeln(m);
End.

19 楼

Program t1;
Var
  a,b,i,f,g:integer;
  c,d,e,m:real;
Begin
  Repeat
   Readln(a,b)
  Until (a>0) and (0<b<50);  
  c:=1;
  d:=1;
  e:=1;
  For i:=a downto 1 do
    c:=c*i;                 
  For i:=b downto 1 do
    d:=d*i;                  
  f:=a-b;
  For i:= f downto 1 do
    e:=e*i;                 
  g:=abs(e);   
  m:=c/(d*g);
  Writeln(m);
End.

20 楼

Program t1
Var
  a,b,i,f,g:integer;
  c,d,e,m:real;
Begin
  Repeat
   Readln(a,b)
  Until (a>0) and (0<b<50);  
  c:=1;
  d:=1;
  e:=1;
  For i:=a downto 1 do
    c:=c*i;                 
  For i:=b downto 1 do
    d:=d*i;                  
  f:=a-b;
  For i:= f downto 1 do
    e:=e*i;                 
  g:=abs(e);   
  m:=c/(d*g);
  Writeln(m);
End.

我来回复

您尚未登录,请登录后再回复。点此登录或注册