public static void main(String[] args) { System.out.println(getMum(1000)); } private static int getMum(int n){ int m = n%3; //剩下的水 int j = n/3; //新换的水。 int sum =0; if (j==0) { return m; }else { sum = (n-m)+getMum(m+j); } return sum; }
public class Main { public static void main(String[] args) { System.out.println(f(1000)); System.out.println(g(1000)); } //算法1 static int f(int n) { if (n < 3) return n; int m = n / 3 * 3; int t = n % 3 + n / 3; return m + f(t); } //算法2 static int g(int n) { int total = 0; int counter = 0; while (n > 0) { --n; ++total; ++counter; if (counter == 3) { counter = 0; ++n; } } return total; } }