这的是多蛋疼的人 才能想出的问题,,, 如果没有第二条要求 就是一个 等差数列求和公式public class Sum { private static int temp = 1; private static int result = 0; public Sum() { Sum.result += Sum.temp; Sum.temp++; System.out.println(result); } public static void main(String[] args) { new Sum(); new Sum(); new Sum(); new Sum(); new Sum(); new Sum(); /*共100个new Sum()*/ } }
修改一下 public class Sum { private static int temp = 0; private static int result = 0; public Sum() { Sum.temp++; Sum.result += Sum.temp; System.out.println(result); } public void add1() { Sum.temp++; Sum.result += Sum.temp; System.out.println(result); if (Sum.temp == 100) { return; }else{ add2(); } } public void add2() { Sum.temp++; Sum.result += Sum.temp; System.out.println(result); if (Sum.temp == 100) { return; }else{ add1(); } } public static void main(String[] args) { new Sum().add1(); } }
递归可替代显式循环: 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; return add(sum,i); } } public static void main(String[] args) { PlusQuestion p=new PlusQuestion(); System.out.println(p.add(0,0)); } }
这个是完全符合要求的 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); } } }
private static int temp = 1;
private static int result = 0; public Sum() {
Sum.result += Sum.temp;
Sum.temp++;
System.out.println(result);
} public static void main(String[] args) {
new Sum();
new Sum();
new Sum();
new Sum();
new Sum();
new Sum();
/*共100个new Sum()*/
}
}
public class Sum {
private static int temp = 0;
private static int result = 0; public Sum() {
Sum.temp++;
Sum.result += Sum.temp;
System.out.println(result);
} public void add1() {
Sum.temp++;
Sum.result += Sum.temp;
System.out.println(result);
if (Sum.temp == 100) {
return;
}else{
add2();
}
} public void add2() {
Sum.temp++;
Sum.result += Sum.temp;
System.out.println(result);
if (Sum.temp == 100) {
return;
}else{
add1();
}
} public static void main(String[] args) {
new Sum().add1();
}
}
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;
return add(sum,i);
}
}
public static void main(String[] args) {
PlusQuestion p=new PlusQuestion();
System.out.println(p.add(0,0));
}
}
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));
}
}
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);
}
}
}