Here you can find the source of factorial(int n)
Parameter | Description |
---|---|
n | a parameter |
Parameter | Description |
---|---|
IllegalArgumentException | an exception |
public static long factorial(int n) throws IllegalArgumentException
//package com.java2s; /******************************************************************************* * Copyright 2014 Felipe Takiyama//w w w . j a v a 2 s .c om * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ public class Main { /** * @deprecated Because it cannot calculate factorial of numbers greater * than 20 * * @param n * @return * @throws IllegalArgumentException */ public static long factorial(int n) throws IllegalArgumentException { long n_factorial = 1; if (n == 1) return n_factorial; if (n < 0) throw new IllegalArgumentException("Cannot calculate factorial of negative numbers!"); if (n > 20) throw new IllegalArgumentException("I can calculate up to 20!."); for (int i = 2; i <= n; i++) { n_factorial *= i; } return n_factorial; } }