projectEuler.net 웹 사이트의 문제 (no.6) 중 하나에서 n 개의 숫자 합계와 제곱 된 숫자 합계의 제곱의 차이를 찾아야합니다. 매우 쉽지만 입력이 매우 클 때 이것을 찾는 방법을 생각할 수 없습니다.계열 합계를 찾습니다
예 : n = 1000 일 때 나의 자바 프로그램이 나에게 이상한 대답을하고있다. 그래서, 누군가 이걸 없애는 방법을 도와 줄 수 있니?
내 코드를 제출하지 않아 죄송합니다. 하지만 내 코드에서 긴 데이터 형식을 사용했지만 여전히 오버플로가 발생했습니다.
package projectEuler;
import java.util.Scanner;
public class Problem6{
public static void main(String args[]){
Scanner input=new Scanner(System.in);
int t=input.nextInt();
int n;
long a,b;
while(t-->0){
n=input.nextInt();
a=((n*n*(n+1)*(n+1))/4);
b=((n*(n+1)*(2*n+1))/6);
System.out.println("sigma n^3 is "+a);
System.out.println("sigma n^2 is "+b);
//diff=(((n*n*(n+1)*(n+1))/4)-((n*(n+1)*(2*n+1))/6));
System.out.println((a-b));
}
}
}
오버플로가 발생했습니다. 'long'또는 'BigDecimal'을 사용하십시오. –
코드가 표시되지 않지만 .... 정수가 오버플로됩니다 ..... –