7-2 有多少香蕉(20 分)
以前有这么一个益智游戏,沙滩上有n个猴子和一堆香蕉,晚上有一只猴子偷偷起来把香蕉分成n份,自己拿走了一份,多出来一根,扔进了海里,然后去睡觉了,后面所有的猴子都进行了同样的操作,分成n份,扔掉一根,拿走一份。问最少需要多少香蕉才能让所有猴子都完成该操作。(最后一只猴子扔掉后可以拿走0个,也算是n份均分)给定一个整数m,表示猴子的个数,题目要求输出最初的香蕉数。题目保证有解。
输入格式:
第一行输入n,后面依次输入n个数m。
输出格式:
所有输出在一行内完成,行末不能有多余空格,最后无回车结尾
输入样例:
第一行的2表示有2个m输入。第二行第三行是输入数据
2
2
3
输出样例
3 25 ————————————————————————————————————————————————————————————————————————————— #include <stdio.h> int main() { int x[1000]; int m,z,i,s,n,num; scanf("%d",&m); for(z=0;z<m;z++) { scanf("\n%d",&n); for(num=n;num<=99999;num+=n) { s=num+1; for(i=1;i<=n;i++) if(s%n==1) s=(s-1)*(n-1)/n; else break; if(i==n+1) { x[z]=num+1; break; } } } for(z=0;z<m;z++) { printf("%d",x[z]); if(z!=m-1) printf(" "); } return 0; } ___________________________________________________________________________________________________________ /*为什么要学好数学?因为数学代表一种思维能力。以下是优化*/ #include <stdio.h> #include <math.h> int main() { int n,i,j,k=0; double xiangjiao; scanf("%d",&n);/*告诉数组有这么多数*/
double m[n];/*乘方貌似要用浮点数*/ for(i=0;i<n;i++) scanf("%lf",&m[i]); for(j=0;j<n;j++){ xiangjiao=pow(m[j],m[j])-m[j]+1;/*小学这个叫找规律*/ printf("%.f",xiangjiao); if (k!=n-1){ printf(" ");k++;}/*要求行末无空格*/ } /*误打误撞答案正确*/ return 0; }