2013-04-24 140 views
4

我一直試圖解決ProjectEuler上的P17(http://projecteuler.net/problem=17),但顯然我錯過了一些東西,因爲我得到的答案(20908)較小。有人可以看看我的代碼並告訴我嗎?我一直想花半個小時找到它,但我看不到它。歐拉項目17

public class P17{ 
    public static void main(String[]args){ 
     //1, 2, 3... 9 
     String[] a = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; 
     int s1 = 0; 
     for(String i: a){ 
      s1+=i.length(); 
     } 

     //10, 11, 12... 19 
     String[] b = {"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "eighteen", "nineteen"}; 
     int s2 = 0; 
     for(String i: b){ 
      s2+=i.length(); 
     } 

     //20, 30, 40... 90 
     String[] c = {"twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"}; 
     int s3 = 0; 
     for(String i: c){ 
      s3+=i.length(); 
     } 

     //21, 22, 23... 31, 32, 33... 99 
     int s4 = 0; 
     for(String i: c){ 
      for(String j: a){ 
       s4+=(i+j).length(); 
      } 
     } 

     String x = "hundred"; 
     String y = "onethousand"; 
     String z = "and"; 

     //100, 200, 300... 900 
     int s5 = 0; 
     for(String i: a){ 
      s5+=(i+x).length(); 
     } 

     //101, 102, 103... 201, 202, 203... 909 
     int s6 = 0; 
     for(String i: a){ 
      for(String j: a){ 
       s6+=(i+x+z+j).length(); 
      } 
     } 

     //110, 111, 112... 210, 211, 212... 919 
     int s7 = 0; 
     for(String i: a){ 
      for(String j: b){ 
       s7+=(i+x+z+j).length(); 
      } 
     } 

     //120, 130, 140... 220, 230, 240... 990 
     int s8 = 0; 
     for(String i: a){ 
      for(String j: c){ 
       s8+=(i+x+z+j).length(); 
      } 
     } 

     //121, 122, 123... 221, 222, 223... 999 
     int s9 = 0; 
     for(String i: a){ 
      for(String j: c){ 
       for(String k: a){ 
        s9+=(i+x+z+j+k).length(); 
       } 
      } 
     } 

     //sum 
     int sum = s1+s2+s3+s4+s5+s6+s7+s8+s9+y.length(); 
     System.out.print(sum); 
    } 
} 
+0

什麼應該是你的結果呢? – 2013-04-24 14:29:19

+1

考慮改變你的頭銜,讓人們知道這個問題是關於什麼的。 – tstorms 2013-04-24 14:35:15

+0

+1更新標題。稱之爲「Project Euler問題17的幫助」或其他。 – 2013-04-24 14:42:53

回答

19
String[] b = {"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", 
    "sixteen", "eighteen", "nineteen"}; 

哪裏十七歲?

(搞笑的是你做的項目歐拉問題這個錯誤...)

+0

17這個數字的確是 – 2013-04-24 14:30:27

+1

哈哈,注意到+1。 – 2013-04-24 14:30:45

+0

HAHAHA,謝謝!我應該爲自己感到羞恥! – constant 2013-04-24 14:32:00