求斐波那契数列的第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);
}
}