A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

8 个回复

倒序浏览
n/3,n/3/3........,这些的余数就不考虑了吗大神
回复 使用道具 举报
在递归函数fun(n)考虑了
回复 使用道具 举报
代码还可以改善的
回复 使用道具 举报
有什么好思路吗,提供点建议
回复 使用道具 举报
public class Demo3 {

        public static void main(String[] args) {
                System.out.println(getN(28));
}

        public static int getN(int num){
                int i=1;
                while(num>fun(i)+i){
                        i++;
                }
                return i;
        }        
       
        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) + n/3 ;
        }
}
回复 使用道具 举报
大神, while(num>fun(i)+i){
                        i++;
                }
这是神马意思
回复 使用道具 举报
微米 中级黑马 2016-5-19 17:32:54
8#
这个是入学的测试题吗
回复 使用道具 举报
这个是上就业班的测试题吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马