日期:2014-05-20 浏览次数:20903 次
public class Csdn {
public static void main(String[] args){
for (int i = 0;; i++) {
int sum = i;
for (int j = 0; j < 5; j++) {
if (sum % 5 == 1)
sum = (sum / 5)*4;
else
sum = 0;
}
if (sum != 0) {
System.out.println(i);
break;
}
}
}
}
------解决方案--------------------
public class test {
public static void main (String[] arge) {
int i=0;
do{
i++;
if ( f (5,i*5+1) ) {
System.out.println (i*5+1);
System.exit (0);
}
}
while(true);
}
public static boolean f (int a,int b) {
if ( (b-1)%5==0 ) {
if (a==1) return true;
else return f (a-1,(b-1)/5*4);
}
return false;
}
}
------解决方案--------------------
这个好像是猴子分桃吧,怎么成渔夫了
------解决方案--------------------
main(){
int n,i,x,flag=1;
for(n=6;flag;n++){
for(x=n,i=1;flag&&i<=5;i++)
if((x-1)%5==0)x=4*(x-1)/5;
else flag=0;
if(flag)break;
else flag=1;
}
printf("Total fish=%d\n",n);
}
------解决方案--------------------
public class Fy {
/**
* 求解渔夫分鱼问题(穷举法)。
* @param num 渔夫数。
* @param mod 每次丢掉鱼数。
* @return 这些渔夫至少捕到多少条鱼能使条件成立。
*/
public static int fy(final int num, final int mod) {
if (num < 1 || mod < 1) return -1;
int min = num + mod;
while (min < Integer.MAX_VALUE) {
int m = min;
int i = num;
do {
if (m % num != mod) break;
m -= mod;
m -= m / num;
} while (--i > 0);
if (i == 0) return min;
++min;
}
return -1;
}
public static void main(String[] args) {
System.out.println(fy(5, 1));
}
}