2016華為機試-猴子分桃
阿新 • • 發佈:2019-01-03
#include<iostream> using namespace std; const long N=2147483647; int main() { int m; while(cin>>m) { int begini=0; long i=0,j=0,count=0; for ( i=1; i < N; i++) { count=0; int flag=0; int begini=i; for (int k = 0; k < m; ++k) { j=i/(m-1)*m+1;//反推最後一隻候分吃以後剩下的桃子為i,則再其操作之前為j,j為上一隻猴子留下來的,肯定能被m-1整除 if (j%(m-1)==0) { if (flag==0) { begini=i; flag=1; i=j; count++; } else { i=j; count++; } } else { i=begini; break; } } if (count==(m-1)) { cout<<j<<endl; break; } } } }