私は1000文字の文字列を与えられた友達からプログラミングの質問を受けました。タスクは、30桁の連続した数字の最大の製品を見つけることです。30桁の最大の積
私のコードは正しいように見えますが、答えは本当に低くなるようですが、これはなぜですか?
この問題の関連コードを以下に示します。
static String s = "2389748943892"; //... This number is actually 1000 characters.
public static void main(String[] args) {
// TODO Auto-generated method stub
int largest = 0;
for(int i = 0; i < 970; i ) {
String cur = s.substring(i, i 30);
int cur_val = 0;
for(int x = 0; x < 30; x ) {
if(x == 0) {
System.out.println(Integer.parseInt(cur.substring(0, 1)));
cur_val = Integer.parseInt(cur.substring(x, 1));
} else {
cur_val = cur_val * Integer.parseInt(cur.substring(x, x 1));
}
}
if(cur_val > largest) {
largest = cur_val;
}
System.out.println("Largest: " largest);
// should be 8876473335152640000 but is 2013265920
}
}
このコードは、正しく、1000桁の数字を入力すると、複数回印刷されるはずです。 "2013265920"は唯一の出力ですか? –
iを1ずつ増やしていますか、30ずつ増やしていますか?あなたの質問に「+」文字が欠けていますか? –
あなたの友人はおそらく教師ですか? ;-) – MBentley