日期:2014-05-20  浏览次数:20679 次

笔试题
本帖最后由 shirui8653719 于 2013-08-23 23:20:34 编辑
一:实现1+2+3+···+100;
二:每加一个数字输出结果,第一次输出3;
三:不能用for,while循环。
谁知道怎么做吗?

------解决方案--------------------
递归可替代显式循环:
public static int add(int begin,int end){
if(begin >= end){
System.out.println("Invalid parameters!");
return -1;
}
if(begin + 1 == end){
System.out.println(begin + end);
return begin + end;
}
int sum = end + add(begin, end-1);
System.out.println(sum);
return sum;
}
public static void main(String[] args) {
add(1, 100);
}

------解决方案--------------------
这个是完全符合要求的
public class PlusQuestion {
public int add(int sum,int i){
if(i==100){
return sum;
}else{
i++;
sum+=i;
System.out.println(sum);
return add(sum,i);
}
}
public static void main(String[] args) {
PlusQuestion p=new PlusQuestion();
System.out.println(p.add(1,1));
}
}

------解决方案--------------------
递归:直接运行就OK!
class A
{
static int a = 2;
static int  sum = 1;
public static void main(String []args)
{
Fun(a);
    }
public static void Fun(int a)
{
if(a<=100)
{
sum += a;
System.out.println(result);
a++;
Fun(a);
}
}
}