java算阶乘的注意什么(java语言求n的阶乘)
大家好,今天小编来为大家解答以下的问题,关于java算阶乘的注意什么,java语言求n的阶乘这个很多人还不知道,现在让我们一起来看看吧!
java里1到10的阶乘相加编程怎么做
java里1到10的阶乘相加编程方法如下:
public class Factorial{//类
public static void main(String [] args){//主方法
int a=1;//定义一个变量a
int sum=0;//定义一个变量sum,把和存放在sum里
for(int i=1;i<11;i++){//做1-11循环
a=1;//每次a都从1开始
for(int j=1;j<=i;j++){//求每个数的阶乘
a=a*j;
}
sum=a+sum;//每个数的阶乘求好后都加入sum
}
System.out.println(sum);//输出和sum
}
}
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
java中怎么实现阶乘,如计算1~100的阶乘
使用BigInteger大容量运算类计算100的阶乘
一.一般算法(循环)
view plaincopy to clipboardprint?
public class Test{
public static void main(String[] args){
int result= 1;
for(int i= 1; i<= 100; i++){
result*= i;
}
System.out.println(result);
}
}
public class Test{
public static void main(String[] args){
int result= 1;
for(int i= 1; i<= 100; i++){
result*= i;
}
System.out.println(result);
}
}
输出结果为0,因为int无法保存下100的阶乘的结果,100的阶乘的长度至少大于50位,也要大于long,double
二.使用BigInteger大容量运算类
view plaincopy to clipboardprint?
import java.math.BigInteger;
public class Test{
public static void main(String[] args){
BigInteger result= new BigInteger("1");//为result赋初始值,为1
for(int i= 1; i<= 100; i++){
BigInteger num= new BigInteger(String.valueOf(i));
result= result.multiply(num);//调用自乘方法
}
System.out.println(result);//输出结果
System.out.println(String.valueOf(result).length());//输出长度
}
}
import java.math.BigInteger;
public class Test{
public static void main(String[] args){
BigInteger result= new BigInteger("1");//为result赋初始值,为1
for(int i= 1; i<= 100; i++){
BigInteger num= new BigInteger(String.valueOf(i));
result= result.multiply(num);//调用自乘方法
}
System.out.println(result);//输出结果
System.out.println(String.valueOf(result).length());//输出长度
}
}
计算结果为:93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
产度:158
java 用integer类求32的阶乘
不用BigInteger也可以实现。
代码我就不写了,说下思路:
用一个集合保存结果的每一位(int型,满足要求),从1开始,然后每次依次和结果的每一位相乘,注意好进位,最终就能得到一个结果每一位的集合,循环输出就可以了。
这样做的好处是,每次都是个位数相乘,不存在overloading的问题。
java语言求n的阶乘
楼主,系统提示你少括号,让你插入一个括号在结束块,说的很明白啊
你在最后加个括号就没错啦...
publicclassexample2{
staticlongcalcFactorial(intn){
longfactorial=1;
if(n<1||n>20){
System.out.println("输入错误!");
}
for(inti=n;i>=1;i--){
factorial*=i;
}
System.out.println("请输入不超过20的正整数n:");
for(inti=1;i<=n;i++){
System.out.printf("最后结果:%d",calcFactorial(n));
System.out.println();
returnfactorial;
}
publicstaticvoidmain(String[]args){}
}//<-这个是calcFactorial方法的结束括号,你类example2的结束括号呢?
另外你这个方法能否运行起来?主函数应该写在class内,而不是calcFactorial方法内
如果你还想了解更多这方面的信息,记得收藏关注本站。