以前有这么一个益智游戏,沙滩上有n个猴子和一堆香蕉,晚上有一只偷偷起来把香蕉分成n份,自己拿走了一份,多出来一根,扔进了海里(题外话:为什么,它就不能吃了???)然后去睡觉了,后面所有的猴子都进行了同样的操作,分成n份,扔掉一根,拿走一份。(仔细想想,可能一份比一根多得多,猴子才不在意吧)。问最少需要多少香蕉才能让所有的猴子都完成该操作。(最后一只猴子扔掉后可以拿走0个,也算是n份均分(猴儿,你好惨啊,下次起早点吧))给定一个整数m,表示猴子的个数,题目要求输出最初的香蕉数。题目保证有解。
输入格式:
第一行输入n,后面依次输入n个数m。
输出格式:
所有输出在一行内完成,行末不能有多余空格,最后无回车结尾。
输入样例:
2
2
3
输出样例:
3 25
运行超时版
#include <stdio.h>
int main()
{
int m, n, i, j, num;
scanf("%d", &m);
for (i = 0; i < m; i++)
{
scanf("%d", &n);
for (num = n; ; num++)
{
int s = num + 1;
for (j = 0; j < n; j++)
{
if (s % n == 1)
{
s = (s - 1) * (n - 1) / n;
}
else
{
break;
}
}
if (j == n)
{
printf("%d ", num + 1);
break;
}
}
}
return 0;
}
不咋会