小猴编程例题
Ⅰ 编程,猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上将
int day, x1, x2;
day = 9;
x2 = 1;
while (day > 0)
{
x1 = (x2 + 1) * 2; /*第一天的桃子是第二天桃子数加1后的2倍*/
x2 = x1;
day--; /*因为从后向前推所以天数递减*/
Console.WriteLine("the total is {0}", x1);
Console.ReadKey();
Ⅱ c/c++/java编程题:聪明的猴子,高分急求大神解答!题目描述如图
能否把样例输出给出,方便验证算法的正确性
下面交流下我的思路
首先我们吧问题转化,变成你一开始有一个原始数字0,你每次可以从数列a中取出一个给他加上或者减去,求可以到达的最小正整数,如果这个数字等于1,那么就说明a这个序列符合要求
然后我们发现这个加加减减的过程很类似 辗转相除法 ,那么显然对于一个数列a 如果其中有两个数字互质,那这个数列就一定符合要求,同样的,如果没有两个数字是互质的,那么这个数列就一定不符合要求。
由于 gcd(1,x)=1 所以也就是说a是符合要求的,当且仅当a中所有元素的gcd=1
这样问题就变成了要求一个序列 a ,要求a中的元素都小于等于B,a 中的最后一个元素为B,且a中所有元素的gcd=1,而这个问题显然可以使用莫比乌斯反演解决
复杂度O(B),对于题目给出的数据范围显然可以胜任。
Ⅲ vb中如何编程这个题 猴子吃桃(一天吃掉一半多一个,第二天吃掉盛下的
Private Sub Command1_Click()
s = 1
For i = 7 To 1 Step -1
s = 2 * s + 1
Next i
Print "桃子的数量="; s
End Sub
Ⅳ 编程求解 猴子吃桃问题。 第一天摘下桃子若干,当即吃掉一半,又多吃一个 第2天将剩余部分吃掉一半还
512个,因为是一半关系所以可以逆着在原数1加两倍因为后面的1是前面的一半,那后面的就是1的两倍,以此类推就是1、2、4、8、16、32、64、128、256、512。所以最后答案是512
Ⅳ c语言程序猴子偷桃问题
#include<stdio.h>
int main()
{
int i,n=1;
for(i=9;i>0;i--)
n=(n+1)*2;
printf("the number of all peach is %d ",n);
return 0;
}