十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
不知道lz在factory(int i)方法里面定义一个x=0是到底要闹哪样。明明是要根据传来的参数进行迭代判断。改了一下,希望对你有用(下次添加代码的时候要注意整洁,不然会干扰回答的~)。
黄石网站建设公司创新互联,黄石网站设计制作,有大型网站制作公司丰富经验。已为黄石1000+提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的黄石做网站的公司定做!
import java.util.Scanner;
public class factorial_2 {
public static void main(String[] args) {
System.out.print("请输入一个整数:");
Scanner n1 = new Scanner(System.in);
int n = n1.nextInt();
System.out.println();
System.out.print(n + "的阶乘为:");
int sum = factorial(n);
System.out.print(sum);
}
private static int factorial(int i) {
//int x = 0;
if ( i == 1) {
return 1;
} else {
int temp;
temp = (int) i * factorial(i - 1);
return temp;
}
}
}
提醒楼主注意的是要注意int范围的问题。因为最后接收结果的是一个int sum类型的值,所以它可以解决的阶乘数也是有范围的。有必要的话可以改成Integer.
具体如下:
public static double squareRoot(double n){
double x =1。
double temp =1。
do{。
temp = x。
//保存上一次计算的值。
x = 0.5*(x + n/x)。
//这个就是牛顿迭代法的基本公式。
}while(Math.abs(x - temp)0.00001)。
//如果两次求值差的绝对值小于0.00001则结束循环。
return x。
这个是求平方根的函数,n为要求的数。
输出保留3位小数:System.out.printf("%.3f",x)。
你好,下面我给出算法思想及其实现:
public class Divide {
/*
* 首先我们要理解计算机是怎么做除法的,计算机只能进行加法和加法运算
* 所以我们用减法去模拟除法运算
* 这里为了简单,只演示整数的相除运算
* 浮点数预算同理,就是控制精度问题
*/
/*
* param a 被除数
* param b 除数
* 返回值 商
*/
public static int divide(int a, int b){
if(a0 || b0){
throw new ArithmeticException("参数必须为非负整数") ;
}
if(b == 0){
throw new ArithmeticException("除数不能为0") ;
}
a -= b ;
if(a = b){ //这里就是控制精度,整数的比较简单
return divide(a,b) ; //递归调用
}
return a;
}
public static void main(String[] args) {
System.out.print("13 / 5 = " + divide(13,2) );
}
}
not null 并不代表 size()或者length 就是0 的。比如 New LinkedList();初始化出来的是0
1、迭代主要是对一些集合类如List、map等进行迭代
2、获取集合类对象,如List
dataList
3、获取dataList的迭代器
4、利用while循环迭代
示例:
List
dataList
=
new
ArrayList
dataList.add("北京");
dataList.add("天津");
//获取dataList的迭代器
Iterator
it
=
dataList.iterator();
while(it.hasNext()){
System.out.println(it.next());
}