Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > BigInteger и функция вычисление факториала


Автор: Warchief 20.10.2007, 14:38
Нужно написать программу(должна работать с типом BigInteger) для вычисления биномиального коэффициента.  Сначала счтиваю n и k с клавитуры таким способом:

Код

InputStreamReader reader = new InputStreamReader(System.in);
        BufferedReader buf_reader = new BufferedReader (reader);
    
        try {
            System.out.println("введите н:");
            String s = buf_reader.readLine (); 
            eingabe = Integer.parseInt(s.trim() );
            System.out.println("введите к:");
            String t = buf_reader.readLine ();
            eing = Integer.parseInt(t.trim() );
            
        }
        catch (IOException ioe){
            System.out.println("IO exeption = " + ioe);
 
тут всё нормально.  Дальше мне нужно написать функцию для вычисления n!,k!. 

Делаю так, но так она естественно не работает(сравнение i<=x не катит ессно) . в эту функцию должны передаваться считанные n и k.
Код

    BigInteger factorial (BigInteger x )
    {   
        for (int i=1; i<=x;i++){
         x = x.multiply(BigInteger.valueOf(i));}
        return x;
    }



Помогите написать правильно функцию пожалуйста. 

Автор: LSD 20.10.2007, 15:49
Код

  public BigInteger factorial(BigInteger x)
  {
    BigInteger result = BigInteger.ONE;
    for(BigInteger i = BigInteger.ONE; i.compareTo(x) < 0; i = i.add(BigInteger.ONE))
    {
      result = result.multiply(i);
    }
    return result;
  }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)