练习1:有一堆桃子,猴子第一天吃了其中的一半,并多吃了一个!
以后每天猴子都吃当前剩下来的一半,然后再多吃一个,
第10天的时候(还没吃),发现只剩下一个桃子了,请问:最初一共有多少个桃子?
public class Test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
有一堆桃子,猴子第一天吃了其中的一半,并多吃了一个!
以后每天猴子都吃当前剩下来的一半,然后再多吃一个,
第10天的时候(还没吃),发现只剩下一个桃子了,请问:最初一共有多少个桃子?
day10: 1
day9:(day10+1)*2
day8:(day9+1)*2
1.出口
day==10 剩下1
2.规律
每一天的桃子数量都是前一天的数量加上1,乘以2
*/
System.out.println(getCount(1));
}
public static int getCount(int day) {
if(day<1 || day>11) {
System.out.println("当前时间错误");
return -1;
}
if(day==10) {
return 1;
}else {
return (getCount(day+1)+1)*2;
}
}
}
练习2:可爱的小明特别喜欢爬楼梯,他又的时候一次爬一台阶,有的时候一次爬两个台阶
如果这个楼梯有100个台阶,小明一共有多少种爬法呢?
public class Test4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
可爱的小明特别喜欢爬楼梯,他又的时候一次爬一台阶,有的时候一次爬两个台阶
如果这个楼梯有100个台阶,小明一共有多少种爬法呢?
运算结果:
1层台阶 1种爬法
2层台阶 2种爬法
7层台阶 21种爬法
*/
System.out.println("小明一共有"+getCount(20)+"种爬法");
}
public static int getCount(int n) {
if(n==1) {
return 1;
}
if(n==2) {
return 2;
}
return getCount(n-1)+getCount(n-2);
}
}
练习3:可爱的小明特别喜欢爬楼梯,他又的时候一次爬一台阶,有的时候一次爬两个台阶
,有的时候一次爬三个台阶,如果这个楼梯有20个台阶,小明一共有多少种爬法呢?
public class Test4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
可爱的小明特别喜欢爬楼梯,他又的时候一次爬一台阶,有的时候一次爬两个台阶
,有的时候一次爬三个台阶,如果这个楼梯有20个台阶,小明一共有多少种爬法呢?
运算结果:
1层台阶 1种爬法
2层台阶 2种爬法
7层台阶 21种爬法
*/
System.out.println("小明一共有"+getCount(20)+"种爬法");
}
public static int getCount(int n) {
if(n==1) {
return 1;
}
if(n==2) {
return 2;
}
if(n==3) {
return 3;
}
return getCount(n-1)+getCount(n-2)+getCount(n-3);
}
}
练习4:求一个3*3矩阵对角线元素之和
public class sum {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
int arr[][]= {{1,2,3},{4,5,6},{7,8,9}};
for(int i=0;i<3;i++) {
for(int j=0;j<3;j++) {
if(i==j || (i==arr[0].length-j-1)) {
sum+=arr[i][j];
}
}
}
System.out.println("对角元素上的和为:"+sum);
}
}
练习5:输入数组,最大的与第一个交换,最小的与最后一个交换,输出数组。
import java.util.Scanner;
public class swap {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[]=new int[10];
int max=arr[0];
int min=arr[0];
System.out.println("请输入一个数组:");
Scanner sc=new Scanner(System.in);
for(int i=0;i<arr.length;i++) {
arr[i]=sc.nextInt();
if(arr[min]>arr[i]) {
min=i;
}
if(arr[max]<arr[i]) {
max=i;
}
}
int temp=0;
temp=arr[0];
arr[0]=arr[max];
arr[max]=temp;
temp=arr[arr.length-1];
arr[arr.length-1]=arr[min];
arr[min]=temp;
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
}