小东分苹果

小东分苹果

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;
    }
}
全部评论

相关推荐

牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
头像
11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务