本文主要是介绍有多少苹果用来分赃,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:
有5个人偷了一堆苹果,他们准备在第二天进行分赃。晚上,有一个溜出来,他把所有苹果分成了5份,但是多了一个,他顺手把多的一个苹果扔给树上的猴子,自己先拿1/5藏了起来。没想到其他四人也是这么想的,都如第一个人一样把苹果分成5份,把多的那一个扔给了树上的猴,偷走了1/5。第二天,大家分赃,也是分成5份多一个扔给猴子。最后一人分了一份。问:共有多少苹果?
思路:
我们直接把过程模拟一遍,反向思考即可:
刚开始一个人分苹果 假设总是为A 那么 他扔掉一个 然后拿走 4/5 剩下了 4/5(A-1)
下一个人:4/5(4/5(A-1)-1)
...
最后一天 五个人分 最后刚好分为5份 一人一个
#include <stdio.h>
#include <math.h>int main() {int s;for (s = 5; ; s++) {if (s % 5 == 1) {// 第一个人分苹果,可以分了5份还剩1个int l = s - (s / 5) - 1;if (l % 5 == 1) {// 第二个人分苹果,可以分了5份还剩1个int m = l - (l / 5) - 1;if (m % 5 == 1) {// 第三个人分苹果,可以分了5份还剩1个int n = m - (m / 5) - 1;if (n % 5 == 1) {// 第四个人分苹果,可以分了5份还剩1个int o = n - (n / 5) - 1;if (o % 5 == 1) {// 第五个人分苹果,可以分了5份还剩1个int p = o - (o / 5) - 1;if (p % 5 == 1) {printf("苹果总数符合5次分苹果都剩一个最小值: %d\n", s);return 0;}}}}}}if (s > 20000) {printf("超过20000次仍未找到符合条件的结果\n");break;}}return 0;
}
这篇关于有多少苹果用来分赃的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!