十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
public static void main(String[] args) {
创新互联建站是专业的海州网站建设公司,海州接单;提供成都网站设计、网站制作、外贸营销网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行海州网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
Test test = new Test();
test.addNum();
}
private int num = 0;
public void addNum() {
num++;
if(num==10){
System.exit(0);
}else{
System.out.println(num);
addNum();
}
} 一个 很简单的程序 ! 其实迭代很简单 就是 判断一些条件 然后 自己调用自身!就行了
java.lang.StackOverflowError 是递归太深的意思 !通过报这个错是你的递归写错了!
就是这里
else{
return fun(x)+fun(x-1);
}
你fun(x)里面又调用 f(x)这样就会无限递归下去!自然报错
不知道你想要怎么的效果
照你的意思应该是 fab 数列 那应该是 return fun(x-1)+fun(x-2);
public static void main (String[] args) throws Exception {
List l = new ArrayList();
l.add("aa");
l.add("bb");
l.add("cc");
for (Iterator iter = l.iterator(); iter.hasNext();) {
String str = (String)iter.next();
System.out.println(str);
}
System.out.println("******************");
/*迭代器用于while循环*/
Iterator iter = l.iterator();
while(iter.hasNext()){
String str = (String) iter.next();
System.out.println(str);
}
}
迭代器(Iterator)
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。
Java中的Iterator功能比较简单,并且只能单向移动:
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。
迭代器应用:
list l = new ArrayList();
l.add("aa");
l.add("bb");
l.add("cc");
for (Iterator iter = l.iterator(); iter.hasNext();) {
String str = (String)iter.next();
System.out.println(str);
}
/*迭代器用于while循环
Iterator iter = l.iterator();
while(iter.hasNext()){
String str = (String) iter.next();
System.out.println(str);
}
*/
不知道lz在factory(int i)方法里面定义一个x=0是到底要闹哪样。明明是要根据传来的参数进行迭代判断。改了一下,希望对你有用(下次添加代码的时候要注意整洁,不然会干扰回答的~)。
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.