3 回答
TA贡献217条经验 获得超353个赞
public class Test81 { public static void main(String[] args) { aa: for (int i = 0; i < 100000; i++) {// 最少的满足的可能性 for (int j = 0, k = i; j < 5; j++) {// 海滩上有一堆桃子,五只猴子来分。 // 猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。 if (k / 5 == 0 || k % 5 != 1) { continue aa; } // 这只猴子把多的一个扔入海中,拿走了一份。 k = k - k / 5 - 1; } System.out.println("海滩上原来最少有" + i + "个桃子"); break; } } }
TA贡献12条经验 获得超3个赞
4只猴子:621
5只猴子:3121
6只猴子:15621
7只猴子:78121
private static int CountShuiGuo( int monkeyNum ) {
/*
* 第一支只猴子:5i+1=n
* 第二支只猴子:25i+9=4n
* 第三支只猴子:125i+61=16n
* 第四支只猴子:625i+369=64n
* 第五支只猴子:3125i+2101=256n
* .
* .
* .
*
*/
int a = 1, b = 1, count = 1;
for ( int i = 0; i < monkeyNum; i++ ) {
if ( i >= 1 ) {
count = count * 4 + a;
b = b * 4;
}
a = a * 5;
}
for ( int i = 0; i < Integer.MAX_VALUE; i++ ) {
if ( b >= 4 ) {
int c = a * i + count;
if ( c % b == 0 ) { return c / b; }
} else {
return 6;
}
}
return 0;
}
TA贡献3593条经验 获得超0个赞
TA贡献1条经验 获得超0个赞
自己想的,没用循环,不过应该可以用,因为只有五个猴子,所以就用小的了
public class shuchu {
static String hobby="imooc";
public static void main(String[] args) {
for(int i=1;i<=10000;i++){
int n=i-1;
int m=4*n/5-1;
int p=4*m/5-1;
int q=4*p/5-1;
int r=4*q/5-1;
if(n%5==0&&m%5==0&&p%5==0&&q%5==0&&r%5==0){
System.out.println(i);
}
}
}
}
TA贡献64条经验 获得超48个赞
最少是3121个
.程序源代码:
main()
{int i,m,j,k,count;
for(i=4;i<10000;i+=4)
{ count=0;
m=i;
for(k=0;k<5;k++)
{
j=i/4*5+1;
i=j;
if(j%4==0)
count++;
else
break;
}
i=m;
if(count==4)
{printf("%d\n",count);
break;}
}
}
添加回答
举报