0
Я пытаюсь решить один factorial problem, представленный в кодеке на Java. ниже мой код, который я пробовал и получаю результаты для чисел до 12. Для 13!, я получаю неправильный ответ. И я получаю нулевой результат для больших чисел. Я нахожусь в фазе обучения, любезно помогите мне.Получение неправильного вывода при поиске факториала числа больше 12
import java.util.Scanner;
public class Factorial {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner dd = new Scanner(System.in);
int a=dd.nextInt();
long fact[]=new long[a];
for (int i=0;i<a;i++)
{
int b = dd.nextInt();
int factorial=0,d=0;
if(b==0) System.out.println(1);
for(int temp=b-1;temp>1;temp=d-1)
{
d=temp;
b=b*temp;
}
fact[i]=b;
}
for(int j=0;j<a;j++)
{
System.out.println(fact[j]);
}
}
}
Спасибо, я изменился до конца. Но мой выход превышает длинный предел и кажется после 21 !. Что делать для этого –
Итак, чего вы пытаетесь достичь? Вы можете попробовать работать с BigDecimal или аналогичным классом – Nadir
, можете ли вы решить эту проблему (https://www.codechef.com/problems/FCTRL2) –