#include "stdio.h" #include "malloc.h" int SelectKing(int n, int m) { int i, current, count, *monkey, in = 一, out = 0; monkey = (int*) malloc (sizeof(int) * (n + 一)); for(i = 一; i = n; i++) monkey[i] = in; for(i = 一, current = 一; i n; i++) { count = 0; if(monkey[current] == in) count++; while(count m){ current = current % n + 一; if(monkey[current] == in) count++; } monkey[current] = out; } for(current = 一; current = n; current++) if(monkey[current] == in) break; return current; } void main( ){ int n, m king; printf("请输入猴数: "); scanf("%d", n); printf("请输入要报数: "); scanf("%d", m); king = SelectKing(n, m); printf("%d号猴王\n", king);
成都创新互联公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供成都做网站、成都网站建设、成都网页设计、小程序设计、成都网站开发、成都网站制作、成都软件开发、APP应用开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!
[img]进入你的空间后,点装扮空间,然后把漂浮物的代码复制下来,黏贴到地址栏上,再按回车键,就可以看到了,然后点保存。就好了。
猴子吃苹果问题
一只猴子摘了一堆苹果,原计划15天吃完.它第一天吃了总数的一半多一个.第二天吃了剩下的苹果的一半多一个.到第10天发现只剩下一个苹果了.问:一共有多少苹果?怎么算?
var monkey = function() {
var day = 10;
var sum = 1;
while (true) {
if (day == 1) break;
sum++;
sum *= 2;
day--;
}
alert("一共有" + sum + "个苹果");
}
monkey();
一堆香蕉,来了三只猴子,第一只猴子把这堆香蕉分成三堆,正好剩一个,于是它拿走一堆和一个。第二个猴子来的时候做同样的操作,最后一个猴子也相同。三只猴子走后,来了五只猴子,这回分五堆剩一个,它拿走一堆加一个。问最开始那堆香蕉最少有多少个?
最后一次分香蕉,即五只猴子分为五堆,此时,每堆香蕉至少有一个,其中一只猴子拿走一堆加一个,就是两个。现在每堆香蕉最少一个,依次往前推,可推出最开始那堆香蕉最少个数。如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package play;
public class Test {
public static void main(String[] args) {
getMinCount(1);
}
/**
*
* @param min 最后一次分堆,每一堆最少香蕉个数
*/
private static void getMinCount(long min) {
// 最后一次分香蕉
long startMin = 5 * min + 1;
int count = 3;
while (count 0) {
count--;
startMin = 3 * startMin + 1;
}
System.out.println(startMin);
}
}