本帖最后由 andalousie 于 2014-9-7 10:13 编辑
@拈花小仙 小仙姐,这道题是编程题吧,数有点大。
1) 由于4和5互质,从20以内的数里面可以找到唯一能整除4且除以5余一的数,也就是16;根据中国剩余定理,可以知道任何20m+16 (m是自然数)都满足“能整除4且除以5余一”这一条件。
2) 在前面五次拿椰子以后,剩下的椰子数都满足上面1)中的条件。所以每次拿剩下的椰子数应为20m+16。
3) 假设其中一次后剩下的为20k+16,那么分之前必然是25k+21。而这又是上一次分剩下的。于是需要满足:于是得到: 此外,可以得到,分之前的k'的值与分之后的k值之间的关系为 ->于是,我写了一个程序来进行求解 - #include <iostream>
- int mem;
- bool check_it(int k) {
- bool result = true;
- mem = k + k / 4 + 1;
- for (int i = 0; i < 4; ++i) {
- if (mem % 4 != 3) {
- result = false;
- break;
- }
- mem = mem + mem / 4 + 1;
- }
- return result;
- }
- int main() {
- int base = 3;
- while (!check_it(base)) {
- base += 4;
- }
- std::cout << 20 * mem + 16 << std::endl;
- }
复制代码得出的结果是62496 |