[Programmers] 숫자의 표현 - 연습문제

5833 단어 algorithmalgorithm
// 숫자의 표현 - 연습문제
public class ExpressionOfNum {

	public int solution(int n) {
		int answer = 0;

		for (int i = 1; i <= n; i++) {
			int sum = 0;
			for (int j = i; j <= n; j++) {
				sum += j;
				if (sum == n) {
					answer++;
					break;
				}
				if (sum > n) {
					break;
				}
			}
		}

		return answer;
	}

	// 주어진 자연수를 연속된 자연수의 합으로 표현하는 방법의 수는 주어진 수의 홀수 약수의 개수와 같다라는 정수론 정리 활용
	public int solution1(int n) {
		int answer = 0;
		for (int i = 1; i <= n; i += 2) {
			if (n % i == 0) {
				answer++;
			}
		}
		return answer;
	}

	public static void main(String[] args) {

		ExpressionOfNum s = new ExpressionOfNum();

		System.out.println(s.solution1(15));

	}
}
  • 자연수를 연속된 자연수의 합으로 표현하는 방법의 수는 주어진 수의 홀수 약수의 개수와 같다라는 정수론 활용

좋은 웹페이지 즐겨찾기