的運動是:爲什麼我的代碼有時無法按預期工作?
查找下面N.
我用的BigInteger這樣我就可以處理大數字的3或5的所有倍數的總和。我通過了第一個測試用例,但通過提交,我只通過了六個測試用例中的一個。所以我的代碼存在問題,但我不知道我在做什麼錯誤。有人能幫我嗎?謝謝。
這是我有:
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