分析:每个渔夫醒来的时候,鱼的数量应该是5的倍数再加1假设,最后一个渔夫E醒来之后,鱼的数量应该至少是6,在他扔掉一条鱼之后,任然可以平均分5分 那么渔夫D醒来应该:6*5+1=31 条鱼 渔夫C醒来应该:31*5+1=156 条鱼 渔夫B醒来应该:156*5+1=781 条鱼
渔夫A醒来应该:781*5+1=3906条鱼
这道题目其实非常简单,我用了3中不同的算法:分别是递推,递归,循坏
public class P10_9 { public static void main(String[] args) { int s=0; int n=4; int b=6; for(;;) //使用循坏的方法 { if(n!=0){ b=b*5+1; } n--; if(n==0){ break;} } System.out.println(f(5)); //--递归调用 System.out.println(b); //--使用循坏 System.out.println(fish(5)); //递推 } public static int f(int n) //递归算法 { int s=0; if(n==1) return 6; return f(n-1)*5+1; } public static int fish(int yufu) //递推算法 { int init; int n; int s; init=yufu+1; n=yufu-1; s=init; //开始的时候s是等于6 while(n!=0) { s=5*s+1; n--; } return s; } }