京东面试题,N只熊分苹果
2015-10-22 22:47
447 查看
如上图所示的题目:
1.从最小来入手,可以首先假设最后一个熊拿到的苹果是1个,那么当时剩余的苹果就有n-1个
2.那么上一只熊分完之后苹果有sum=n个,分之前的苹果有sum/(n-1)*n+1个,同理上推
3.通过思路2可以得知sum必须可以整除n-1,如果不整除的话,那就重新回到1,强剩余苹果数加1,继续往下操作
代码如下:
#include <iostream> using namespace std; int fun(int n); bool isDivide(int divided,int n); int main() { for(int i=2;i<9;i++) { int ret=fun(i); printf("%d\n",ret); } } bool isDivide(int divided,int n) { if(0==divided%n) return true; return false; } int fun(int n) { int nlef=n-1; int sum=nlef; for(int i=n;i>=1;i--) { if(!isDivide(sum,n-1)) { nlef++; sum=nlef; i=n+1; continue; } sum=sum/(n-1)*n+1; } return sum; }
相关文章推荐
- 程序员的自黑
- 从小学到高中,一个程序猿的独白
- 关于数组面试小题
- 两道面试题:2012年10月9号阿里巴巴笔试
- 单链表常见的面试题,及应用
- Android面试题(一)(笔记)
- 2015北京面试记录
- 黑马程序员——java学习日记八
- C#程序员经常用到的10个实用代码片段
- 黑马程序员——java学习日记七
- verilog面试题
- 如何成为一名合格的程序员
- 面试问题
- 《一个程序员的奋斗史》
- 黑马程序员——java学习日记六
- 干程序员不要输在起跑线上
- [.Net码农]RDL和RDLC使用ReportViewer显示报表时筛选导出项
- [.Net码农]RDLC打印控件失败
- [.Net码农]RDLC报表打印时提示 客户端无法加载打印控件的问题
- [.Net码农]RDLC报表打印