運動は次のとおりです。私のコードが期待どおりに動作しないのはなぜですか?
は、私は大きな数字を扱うことができるので、私は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;
}}
あなたは[問題1 - プロジェクトオイラー]を意味するか(https://projecteuler.net/problem=1)?各テストケースからすべての回答を合計する必要はありません。 – MikeCAT
ありがとうございます。はい、私は問題1を意味します。私のコードでは、すべてのテストケースを集計しませんでしたか、何か間違ったことをしましたか? – user3505506
(%)N%3 == 0、N%5 == 0の場合、モジュラス関数をルックアップする必要があります。 – VeenarM