Java面向对象程序设计实验报告之阶乘计算

更新时间:2024-03-06 07:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验步骤:

1、首先建立一个阶乘类Factor;

2、然后编写一个静态方法fac,实现调用该方法时,接受任意数,返回该数对应的阶乘值; 3、在主函数中输入一个待求阶乘的数; 4、调用fac方法完成求解。 调试过程:

1、注意中英字符的不同会导致程序无法编译; 2、某类方法记不清,应该学会查看API文档; 3、注意#import的引用。

实验结:

请输入一个你要计算阶乘的数:4 4!= 24

疑难与小结:

1、字符数组是以int位最大范围,可能超出界限;

2、涉及到的算法含有大量的字符串操作,速度不是很快,当n=1000时,需要花费大量的时间,这点需要改进;

3、如果N非常大,可能会造成内存不足的情况; 4、试验中认识到自己的c语言还有待提高。

代码:

import java.util.Scanner; class Factor{ public static void fac(int num){ int temp; int a[] = new int[9000]; int digit = 1; int i,j,carry; a[0] = 1; for(i = 2; i <= num; i++) { for( j = 1, carry = 0; j <= digit; j++) { temp = a[j-1] * i + carry; a[j-1] = temp % 10; carry = temp / 10; } while(0!=carry) { a[++digit-1] = carry % 10; carry = carry/10; }

} System.out.print(num + \!= \ for(j = digit; j >=1;j--) { System.out.print(a[j-1]); } System.out.println(); } }

public class Test2{ public static void main(String args[]){ Scanner scanner = new Scanner(System.in); System.out.print(\请输入一个你要计算阶乘的数:\ int num = scanner.nextInt(); Factor.fac(num); } }

本文来源:https://www.bwwdw.com/article/txba.html

Top