2013-11-01 41 views
0

我試圖解決一個解決此提示的程序挑戰 「當從一籃子雞蛋中一次移除2,3,4,5,6個雞蛋時,剩餘量爲1,2,3,4,5,6。 5個雞蛋,每次取下7個雞蛋時,雞蛋不會留下,籃子裏的雞蛋數量最少是多少?「在java中使用嵌套循環解決消除?

我試圖做一個使用嵌套循環的程序,我覺得它應該工作,但是當我運行該程序時,它只是打印空白區域。我從來沒有得到一個數字來滿足方程。有人可以幫助我,或者告訴我我做錯了嗎?

我只允許使用嵌套循環和決策語句。

public class Program{ 

public static void main (String []args){ 

    int c,d,e,f,g,h; 

for (int j=1; j<1000; j++){ 

    for (c=j; c>=1; c=c-2){ 
    } 


     if (c==1){ 
      for (d=j; d>=2; d=d-3){ 
      } 

     if (d==2){ 
      for (e=j; e>=3; e=e-4){ 
      } 
     if (e==3){ 
      for (f=j; f>=4; f=f-5){ 
      } 
     if (f==4){ 
      for (g=j; g>=5; g=g-6){ 
      } 
     if (g==5){ 
      for (h=j; g>=0; h=h-7){ 
      } 
     if (h==0){ 
      System.out.println(+j); 
     } 
     } 
     } 
     } 
     } 
     } 
} 
} 
} 
+2

1)格式化你的代碼2)爲什麼有這麼多的空'for'loops? – Julien

+0

如果你可以修復縮進問題,它會增加你得到答案的可能性。 – BlackVegetable

+0

我不明白這個問題。如果您從籃子中取出7個雞蛋,並且隨後沒有剩下任何雞蛋,則無法計算。 – pfnuesel

回答

1

試試這個:

public static void main(String[] args) { 
    int x = 7; 
    int result = -1; 
    while (true) { 
     if ((x % 2 == 1) && (x % 3 == 2) && (x % 4 == 3) && (x % 5 == 4) 
       && (x % 6 == 5)) { 
      result = x; 
      break; 
     } 
     x += 7; // This because you know its multiple of 7 
    } 
    System.out.println("Result is: " + result); 
} 
+0

謝謝! :)這工作! – user2817797

1
int numberOfEggs = 0; 
for (;;) 
{ 
    if (numberOfEggs % 2 == 1 && 
     numberOfEggs % 3 == 2 && 
     numberOfEggs % 4 == 3 && 
     numberOfEggs % 5 == 4 && 
     numberOfEggs % 6 == 5 ) 
     return numberOfEggs; 
    else 
     numberOfEggs += 7; 
} 
+0

這個。除非你有使用模數運算符的規則嗎?如果是這樣,請自行模擬功能;不要使用嵌套循環。如果你有超過2個嵌套循環,是時候重構你的代碼。 –