求斐波那契數列的第n項。(迭代實現)
mport java.util.Scanner;
public class TestDemo {
public static long fibRec(int num) {
if(num < 3) {
return 1;
}
return fibRec(num - 1) + fibRec(num - 2);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
if(num <= 0) {
System.out.println("請輸入一個大於0的正整數!");
} else {
long fibRec = fibRec(num);
System.out.println("斐波那契數列中的第" + num + "項是:" + " " + fibRec);
}
}
}
求 N 的階乘
import java.util.Scanner;
public class TestDemo {
public static int fac(int i) {
if(i==1) {
return 1;
}
return i*fac(i-1);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
int ret = fac(i);
System.out.println(ret);
}
}
求1!+2!+3!+4!+…+n!的和
import java.util.Scanner;
public class TestDemo {
public static int facAdd(int i) {
int ret = 1;
int sum = 0;
for(int j = 1 ;j <= i ;j++) {
ret = fac(j);
sum+=ret;
}
return sum;
}
public static int fac(int j) {
if(j==1) {
return 1;
}
return j*fac(j-1);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
int ret = facAdd(i);
System.out.println(ret);
}
}
求和的重載
創建方法求兩個數的最大值max2,隨後再寫一個求3個數的最大值的函數max3。
要求:在max3這個函數中,調用max2函數,來實現3個數的最大值計算
public class TestDemo {
public static int max2(int a,int b) {
return a >= b ? a : b;
}
public static int max3(int a,int b,int c) {
return max2(max2(a,b),c);
}
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
int ret2 = max2(a,b);
int ret3 = max3(a,b,c);
System.out.println("兩個數中最大值是" + ret2);
System.out.println("三個數中最大值是" + ret3);
}
}
在同一個類中定義多個方法:要求不僅可以求兩個整數的最大值,還可以求兩個小數的最大值,以及兩個小數和一個整數的大小關係
import java.util.Scanner;
public class TestDemo {
public static int max2(int a,int b) {
return a >= b ? a : b;
}
public static double max2(double i,double j ) {
return i >= j ? i : j;
}
public static double max2(int l,double m,double n) {
return l >= (n >= m ? n : m) ? l: (n >= m ? n : m);
}
public static void main(String[] args) {
/*Scanner scan = new Scanner(System.in);
int i = scan.nextInt();*/
int a = 10;
int b = 20;
int twoInt = max2(a,b);
System.out.println("兩個整數中最大值是" + twoInt);
double i = 35.5;
double j = 25.6;
double twoDouble = max2(i,j);
System.out.println("兩個小數中最大值是" + twoDouble);
int l = 40;
double m = 45.5;
double n = 60.5;
double intDouble = max2(l,m,n);
System.out.println("兩個小數和一個整數中最大值是" + intDouble);
}
}
在同一個類中,分別定義求兩個整數的方法 和 三個小數之和的方法。 並執行代碼,求出結果
public class TestDemo {
public static int add2(int a,int b) {
return a+b;
}
public static double add2(double i,double j ,double k) {
return i+j+k;
}
public static void main(String[] args) {
/*Scanner scan = new Scanner(System.in);
int i = scan.nextInt();*/
int a = 10;
int b = 20;
int addInt = add2(a,b);
System.out.println("兩個整數的和是" + addInt);
double i = 35.3;
double j = 24.2;
double k = 40.5;
double addDouble = add2(i,j,k);
System.out.println("三個小數的和是"+addDouble);
}
}