Java再帰呼び出しテスト小demo
5894 ワード
package feilong.day1221;
import java.util.Scanner;
/**
*
* 5=5*4*3*2*1=120
* @author Nanfeilong
*/
public class Diguidiaoyong_jiecheng {
public static void main(String[] args) {
System.out.println(" :");
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
System.out.println(multiply(a));
scanner.close();
}
public static long multiply(int b) {
if(b<=0) return 1;//
else return b*multiply(b-1);//multiply(b-1)
}
}
5と入力すると5*4*3*2*1=120となります
package feilong.day1221;
import java.util.Scanner;
/**
* (a)1+2+3+4...100
* @author Nanfeilong
*/
public class Diguidiaoyong {
public static void main(String[] args) {
System.out.println(" 100");
int a = new Scanner(System.in).nextInt();
System.out.println(addnum(a));
}
public static int addnum(int num){
if(num==100) return 1;//
else return num+addnum(num+1);//addnum(num+1)
}
}
例えば98と入力すると、結果は98+99+1=198となる.
100に等しい場合は1を返すからです
/**
*
* @author Nanfeilong
*
*/
package feilong.day1221;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
/*
*
* 1 1 2 3 5 8 13 21 34 55 89 144...
*/
System.out.println(" ?");
int n = new Scanner(System.in).nextInt();
long r = g(n);
long f = f(n);
System.out.println(" "+n+" :"+f);
System.out.println(r);
}
private static long g(int n) {
long a = 1;
long b = 1;
for(int i = 3; i<=n; i++){
b=a+b;
a=b-a;
System.out.println("===========");
System.out.println(b);
System.out.println(a);
}
return b;
}
private static long f(int n) {
if(n==1||n==2) {
return 1;
}
return f(n-1)+f(n-2);
}
}
何番目のフィボナッチ数列を求めますか?5
2 1
3 2
5 3フィボナッチ数列の5番目の数は:5です.