배열의 n개를 입력받아 합한값과 최댓값을 출력
int n=sc.nextInt();
ace[]=new int[n] 에 크기를지정
for문을돌려
ace[i]=배열의 값을 전달
0번쨰 값 ,1번쨰 값 ,2번쨰 값,3번쨰값 이런식으로.
sum+=ace[i]에 있는값을 전달
모든데이터를 sum에다가 저장
if(data[i]>max) 현재내가 보고있는데이터가
max=data[i] 최대값보다 크다면 최대값으로 전달.
ace[i]>max 보다크면 max에다가 ace[i]값을 전달해준다
그럼 max에 20있다고 치면
ace[i]>max
60
ace가 크기떄문에 max에다가 옮겨준다
이런원리이다.****
그리고 위에처럼 하게되면 음수를 입력하면
오류가발생
변경해준다.
다음과 같은 예제는 이런식으로 풀어볼수있다.
![]
역순으로 하면된다.
int tmp부분에 배열의 끝자리부분을 저장.
for문을 n-2로 하게되면 배열-2 부분부터 시작해서
검사를 한다
ace[i+1]=ace[i] 는
i+1 부분에 i를 삽입해준다
한칸씩 오른쪽으로 삽입해주는것.
ace[0]에는 아까 삽입했던 tmp를 넣어준다.
그러고출력.
//n이 소수인지 알고 싶으면 2~n-1 까지 나누어봐서 나누어떨어지면 소수가아님.
//2,3,...,n-1 // 2/n n의약수가 4보다 클수 없기떄문에
for(int i=2; i<=n/2; i++){ //n이 소수인지 검사하는것.
if(n%i==0) { //나누어 떨어진다면 약수가아님. //not prime
isPrime=false; //나누어떨어지면 false
}
if(isPrime) //isPrime이 참이라면
System.out.println(n); //출력
}
모든쌍을 검사해본다.
j=a+1부터 시작해야 겹치지가 않는다
초기문을 0,0으로 설정하면
0,0 1,1 2,2이런식으로 겹치기떄문에
그냥 값이 증가된다
이걸 방지하기위해
j를 a+1부터 시작하면 겹치지않고
다음 자리부터 쭉 검사를 한다.
for문 구조는
0,1
0,2
0,i-1까지 계산 그다음
1,1
1,2
1,3
이런식으로
맞는쌍을 찾으면 count값을 증가시켜주는 것!