导航:首页 > 编程语言 > java100阶乘

java100阶乘

发布时间:2022-06-23 18:48:43

⑴ 为什么再java中求100的阶乘结果是0,我知道这已经超了int的范围了但是不应该报错吗

java中 int溢出,结果只会保留低32位,高位会抛弃掉。当你算到100的时候,溢出太多,后面的都变成0了(事实上,你算到34的时候已经溢出为0了);系统只是将多余的位(2进制的高位)舍弃,不会报错的。

在Java Language Specifictionz中所述(JSL 15.7.1)

If an integer multiplication overflows, then the result is the low-order bits of the mathematical proct as represented in some sufficiently large two’s-complement format. As a result, if overflow occurs, then the sign of the result may not be the same as the sign of the mathematical proct of the two operand values.

⑵ 用java语言求100的阶乘

100的阶乘要用bigdecimal才可以
import java.math.BigDecimal;

public class Information {

public static void main(String[] args) {
BigDecimal bg = new BigDecimal(1L);

int i = 1;
while(i <= 100){
bg = bg.multiply(new BigDecimal(i++));
}

System.out.println(bg.toString());
}
}

⑶ [急!]java 求100阶乘各位数的和 已有答案,求解释!

import java.math.BigDecimal; //导入包
public class DigitFactorial //定义类
{
public static void main(String[] args)
{
BigDecimal big = new BigDecimal(1); //声明一个BigDecimal对象

int i = 1;
while(i <= 100) //在i小于或等于100的时候执行下面的语句
{

big = big.multiply(new BigDecimal(i++)); //每次都用i的阶乘的结果取乘以i+1,得到i+1
//的阶乘,比如:i=1时, //big=1*2 时, big=1*2*3,最后得到100的阶乘
}

String str = big.toString(); //把100的阶乘转换成字符串

System.out.println("Result: " + str); //输出

int sum = 0;
for(i = 0; i < str.length();i++) //当i在0到str.length()之间时执行,也就是遍历//str 的每一个字符
{
sum += Integer.parseInt(String.valueOf(str.charAt(i))); //把每一个字符都换成整数再相加,得到所有数的和
}

System.out.println("Sum is: " + sum); //输出

}
}

BigDecimal和BigInteger用法的区别:
BigDecimal返回的是小数,可以进行四舍五入,用的较多;
BigInteger返回的是整数,用的较少
其他没多少区别

⑷ 求Java用数组求100的阶乘

要数组做?给你个程序
class Test{
public static void main(String argds[]){
int a[] = new int[100];
int sum=1;
for(int i=0;i<a.length;i++){
a[i] = i+1; //给数组复制,从1到100
}
for(int j=0;j<a.length;j++){
sum = sum*a[j]; //计算阶乘
}
}
}

计算其他值的阶乘,只要把定义数组里面的100换成其他值就好了。
给我分啊,谢了

⑸ 关于java计算100的阶乘的问题求大神解答

import java.math.*;
public class JieCheng{
public static void main(String[] args){
System.out.println("100! = "+fun(100));
}
pubic static BigIntegr fun(long n){
BigIntegr result = BigInteger.ONE;
for(int i = 1;i <= n;i++)
result = result.mutiply(new BIgIntegr(i+“ ”));
return result;
}

⑹ 求Java写的100的阶乘

100的阶乘int是存不了的,要用大数类:import java.math.BigDecimal;
public class Test {
public static void main(String args[]){
BigDecimal result= new BigDecimal(1);
for(int i=1;i<=100;i++){
BigDecimal i_value= new BigDecimal(i);
result = result.multiply(i_value);
}
System.out.println("result="+result);
}
}

⑺ java中怎么实现阶乘,如计算1~100的阶乘

使用BigInteger大容量运算类计算100的阶乘
一.一般算法(循环)
view plain 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 plain 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());//输出长度
}
}
计算结果为:000000000000000000
产度:158

⑻ java中100的阶乘如何写

楼上用的方法好像不是递归吧,我也不知道我写的对不,让楼主来挑吧

public class OneToH
{
private static int i = 1;

private static int sum = 0;

/**
* @param args
*/
public static void main(String[] args)
{
System.out.println(recursion());
}

public static int recursion()
{
sum = i*(i+1);
i++;
if(i==100)
{
return sum;
}
else
recursion();
return sum;
}
}

⑼ 1-100阶乘之和(java程序)

亲,java的界面不太受欢迎哦~~大概按你要求做了,看看吧~~import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JEditorPane;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;public class yoyo extends JFrame{public static void main(String[] args){yoyo yo=new yoyo();yo.show();}public yoyo(){setDefaultCloseOperation(EXIT_ON_CLOSE);//设置退出时结束程序setTitle("计算阶层和");setSize(400, 250);setLocation(100, 100);//坐标//把控件实例化final JEditorPane edit=new JEditorPane();final JButton button=new JButton("计算和");final JTextArea area=new JTextArea(null, "", 8, 18);JPanel myPanel1=new JPanel();//这个是第一行的布局myPanel1.add(new JLabel("请输入整数n:"),BorderLayout.WEST);myPanel1.add(edit,BorderLayout.CENTER);myPanel1.add(button,BorderLayout.EAST);JPanel myPanel2=new JPanel();//这个是第二行的布局myPanel2.add(new JLabel("1至n的阶乘和是:"),BorderLayout.WEST);myPanel2.add(area);//把上面的布局加入画布中this.add(myPanel1,BorderLayout.NORTH);this.add(myPanel2,BorderLayout.CENTER);//上面已经把界面做出来了,接下来监听按钮button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {int n=Integer.valueOf(edit.getText());//得到edit里的值nint result=0;for(int i=1;i<=n;i++){int a=1;for(int j=1;j<=i;j++){a*=j;}result+=a;}area.setText(result+"");}});}}下面效果图:

⑽ java中怎么样用递归写100的阶乘 不能 用int和double型 也不可以使用第三方 的类

import java.math.BigInteger;

public class Factorial {
public static BigInteger factorial (BigInteger num) {
if (num.equals(BigInteger.ONE) || num.equals(BigInteger.ZERO))
return BigInteger.ONE;
return (num.subtract(BigInteger.ONE).multiply(factorial(num)));
}

public static void main (String args[]) {
System.out.println("100! = " + factorial(new BigInteger("100")));
}
}

阅读全文

与java100阶乘相关的资料

热点内容
二进制流转pdf 浏览:913
php判断爬虫 浏览:567
960除24除4简便算法 浏览:786
关于解压英语翻译 浏览:565
python控制键盘右键 浏览:920
php没有libmysqldll 浏览:828
时政新闻app哪个好 浏览:906
手机已加密怎么办 浏览:201
安卓手机截屏怎么传到苹果 浏览:527
京管家app哪里下载 浏览:33
文件夹横向排列的竖向排列 浏览:453
51单片机驱动摄像头模块 浏览:689
政府文件加密没法转换 浏览:373
android判断栈顶 浏览:331
凭证软件源码 浏览:860
androidwebview滚动事件 浏览:11
如何将电脑上的图片压缩成文件包 浏览:899
程序员转金融IT 浏览:837
黑马程序员培训效果如何 浏览:915
本地集成编译 浏览:528