2016-03-19 3 views
-1

運動は次のとおりです。私のコードが期待どおりに動作しないのはなぜですか?

は、私は大きな数字を扱うことができるので、私はBigIntegerのを使用しているN.以下の3または5

のすべての倍数の和を検索します。私は最初のテストケースに合格しますが、提出によって私は6つのテストケースのうちの1つだけを渡します。だから私のコードに問題がありますが、私は何が間違っているのか分かりません。誰か助けてくれますか?ありがとうございました。

これは私が持っているものです:テストケースに対処するための

public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); 
    Solution solution = new Solution(); 
    for (int i = 0; i < 3; i++){ 
     long input = scanner.nextLong(); 
     BigInteger sums = new BigInteger("0"); 
     sums = sums.add(solution.calculateSum(input));    
     if (sums.signum() == 1){ 
      System.out.println(sums); 
     } 
    } 
} 

private BigInteger calculateSum(long input){ 
    input--; 
    long totalElements = 0; 
    BigInteger sums = new BigInteger("0"); 
    if (input >= 3){ 
     totalElements = input/3; 
     sums = sums.add(BigInteger.valueOf((totalElements * (3 + totalElements *3))/2)); 
    } 
    if (input >= 5){ 
     totalElements = input/5; 
     sums = sums.add(BigInteger.valueOf((totalElements * (5 + totalElements *5))/2)); 
    } 
    if (input >= 15){ 
     totalElements = input/15; 
     sums = sums.subtract(BigInteger.valueOf((totalElements * (15 + totalElements *15))/2)); 
    } 
    return sums; 
}} 
+0

あなたは[問題1 - プロジェクトオイラー]を意味するか(https://projecteuler.net/problem=1)?各テストケースからすべての回答を合計する必要はありません。 – MikeCAT

+0

ありがとうございます。はい、私は問題1を意味します。私のコードでは、すべてのテストケースを集計しませんでしたか、何か間違ったことをしましたか? – user3505506

+0

(%)N%3 == 0、N%5 == 0の場合、モジュラス関数をルックアップする必要があります。 – VeenarM

答えて

0

あなたのルーチンは完全に間違っています。ステートメントを読んでそれに従ってください。

また、追加と署名のチェックは必要ありません。

これを試してみてください:

public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); 
    Solution solution = new Solution(); 
    int size = scanner.nextInt(); 
    for (int i = 0; i < size; i++){ 
     long input = scanner.nextLong(); 
     BigInteger sums = solution.calculateSum(input); 
     System.out.println(sums); 
    } 
} 
+0

'ProjectEuler'に関する回答を投稿するのは良い考えですか? –

+0

ありがとうございました:)。できます。あなたは私のヒーローです。私が間違ったことをあなたに何か情報をくれますか? – user3505506

+0

私は何が間違っているかを見ます。 3つの入力があるたびに、入力が異なっていると私は考えました。 – user3505506

関連する問題