본문 바로가기

개발/algorithm

[java] 반복 - 1부터 n까지의 정수 합 구하기

반응형

알고리즘 스터디 

 

1부터 n까지의 정수 합 구하기


 

 

연습문제 1부터 n 까지의 정수 합 구하기 

 

package chap01Ex;
import java.util.Scanner;
// 1, 2, …, n의 합을 구합니다.

class SumFor {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        System.out.println("1부터 n까지의 합을구합니다."); // 키보드 깂을 입력 받는 stdIn.nextInt()보다 앞에 입력
        System.out.print("n의 값:");
        int n = stdIn.nextInt(); // 키보드 입력 값 중 정숫값 얻어내기

        int sum = 0;                    // 합

        for (int i = 1; i <= n; i++)
            sum += i;                    // sum에 i를 더합니다.

        System.out.println("1부터 " + n + "까지의 합은 " + sum + "입니다.");
    }
}

 

 

 

 

 

 

 

연습문제2 가우스 덧셈을 이용해 1부터 n까지 정수 합을 구하기

class SumFor {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        System.out.println("가우스덧셈이용"); 
        System.out.print("n의 값:");
        int n = stdIn.nextInt(); 

        int sum =0;
        
        for (int i = 0; i < n; i++) {
            sum += (i + n-(i-1));
            
        }
        sum = sum/2 ;
        System.out.println("1부터 " + n + "까지의 합은 " + sum + "입니다.");
    }
}
 

 

2 해답 코드

 

package chap01Practice;
import java.util.Scanner;
// 가우스 공식에 의해 1, 2, …, n의 합을 구합니다.

class SumGauss_01_08 {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        System.out.println("1부터 n까지의 합을 구합니다.");
        System.out.print("n의 값:");
        int n = stdIn.nextInt();

        int sum = (n + 1) * (n / 2) + (n % 2 == 1 ? (n + 1) / 2 : 0); // 합

        System.out.println("1부터 " + n + "까지의 합은 " + sum + "입니다.");
    }
}
 

 

 

 

 

 

연습문제3 정수 a,b를 포함하여 그 사이 모든 정수 합 구하기

package chap01Practice;
import java.util.Scanner;
// 정수a, b를 포함하여 그 사이의 모든 정수의 합을 구합니다. 

class SumOf_01_09 {
    
    static int sumof(int a, int b) {
        int min; // a, b의 작은 쪽의 값
        int max; // a, b의 큰 쪽의 값

        if (a < b) {
            min = a;
            max = b;
        } else {
            min = b;
            max = a;
        }

        int sum = 0; // 합
        for (int i = min; i <= max; i++)
            sum += i;
        return (sum);
    }

    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        System.out.println("a와 b를 포함하여 그 사이의 모든 정수의 합을 구합니다.");
        System.out.print("a의 값:");
        int a = stdIn.nextInt();
        System.out.print("b의 값:");
        int b = stdIn.nextInt();

        System.out.println("정수 a, b 사이의 모든 정수의 합은 " + sumof(a, b) + "입니다.");
    }
    
    
}

 

 

 

반응형