小东分苹果

小东分苹果

http://www.nowcoder.com/questionTerminal/532d89889b974506a0805062fd1089fb

思路

  • 暴力递归
    从1计算到Integer.MAX_VALUE
  • 高等数学分析
    再来看看数学上的表达:模拟这个过程,可以写出n个方程

    y表示苹果数,由于令y最小化,可以用lagrange乘数法写出目标函数;
    另一种观点是y表征在x的向量空间中,有
    并且
    所以可以考虑从特征空间上的角度求解;
  • 数论分析
    上面给出了第i个方程;结合n方程看看,发现每一次都是n的倍数+1;
    最后一项是
    然后一顿推,不知道怎么推QAQ
    最终:y=n^n-n+1
    看到答案我就会推了,a^n-1=(a-1)(a^(n-1) +a^(n-2) + ...a+1)
    y-1=n(n^(n-1)-1) 看看是不是很像QAQ

代码

import java.util.*;
public class Apples {
    public boolean getInitial(int n,int k,int x){
        if(k==0){return true;}
        if((x-1)%n!=0){
            return false;
        }
        return getInitial(n,k-1,(x-1)*(n-1)/n);
    }
    public int getInitial(int n) {
        for(int i=1;i<=Integer.MAX_VALUE;i++){
            if(getInitial(n,n,i)){
                return i;
            }
        }
        return 0;
    }
}
全部评论

相关推荐

10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
10-15 10:57
已编辑
武昌理工学院 FPGA工程师
狠赚笔第一人:老哥学院本没实习还想拿13k学Java狠赚笔呢
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务