首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

笔试题解决方法

2013-10-21 
笔试题本帖最后由 shirui8653719 于 2013-08-23 23:20:34 编辑一:实现1+2+3+···+100;二:每加一个数字输出

笔试题
本帖最后由 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);
}
}
}

热点排行