日期:2014-05-20 浏览次数:20621 次
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)); } }