28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?
假如是50人,又需要买多少瓶可乐?(需写出分析思路)- /**
-
- * 1、创建方法1,参数为整数类型 num ,返回值为整数类型
- * 2、分析数据 num = n + n/3 + n/3/3 +…… ;求n
- * 3、单独写个递归调用方法2等式求得右边
- *4、n <= num;在方法1中利用循环实现上诉等式的时候返n
- */
- public static void main(String[] args) {
- System.out.println(getN(28));
- }
-
- public static int getN(int num){
- for(int i = num ; i > 0;i-- ){
- if(num == fun(i) + i){
- return i;
- }
- }
- return -1;
- }
-
- public static int fun(int n){
- if(n < 3){
- return 0;
- }else if(n >= 3 && n<6){
- return 1;
- }
- return fun(n/3) + n/3 ;
- }
- }
复制代码 貌似写的有些复杂化了,还有什么简单的写法吗?
|
|