24.03.20

서린·2024년 3월 20일

혼자개발

목록 보기
73/82
  1. 입력으로 두 정수 a와 b를 받아 a의 b제곱을 계산하기
// 16
public static void main(String[] args) {

		Scanner kb = new Scanner(System.in);
		int a = kb.nextInt();
		int b = kb.nextInt();
		
        // 1.메소드 power호출문
		int result = power(a, b); // 4.메소드 power가 return문으로 넘겨준 값을 받아 변수 result에 저장
		System.out.println(result);
		
		kb.close();
	}//
	// 2.메소드 power는 매개변수(두개의 정수)를 받는다
	static int power(int n, int m) { //이 함수가 돌려주는 값이 int
		int prod = 1;
		for (int i = 0; i < m; i++) {
			prod *= n;
		}
		return prod; //3. 변수 result 값을 return을 해서 호출문에게 넘겨준다
	}

  1. 1~100000 사이의 소수를 찾아 출력하기
// 17
public static void main(String[] args) {

		for (int n = 1; n <= 100000; n++) {
			if (isPrime(n)) {
				System.out.println(n);
			}
		}
	}//

	static boolean isPrime (int k) {
		if ( k < 2) { // 소수 구할 때 1제외
			return false;
		}
		
		for (int i = 2; i * i <= k; i++) {
			if (k % i == 0) { //소수가 아니다
				return false; 
			}
		}
		
		return true;
	}

  1. bubbleSort
// 18
public static void main(String[] args) {

		Scanner kb = new Scanner(System.in);
		
		int n = kb.nextInt();
		int [] data = new int[n];
		
		for (int i = 0; i < n; i++) {
		data[i] = kb.nextInt();
		}
		
		bubbleSort(n, data); // 1.데이터의 갯수 n, n개의 데이터가 저장되어있는 배열 data
		
		System.out.println("sorted data: ");
		for (int i = 0; i < n; i++) {
			System.out.print(data[i]);
		}
	}//
	
	static void bubbleSort(int n, int [] array) { //2. 메소드 bubbleSort는 매개변수(배열과 정수)를 건네받는다
		for (int i = n-1; i > 0; i--) {
			for (int j = 0; j < i; j++) {
				if (array[j] > array[j+1]) {
					int tmp = array[j];
					array[j] = array[j+1];
					array[j+1] = tmp; 
                    // 3. 메소드 bubbleSort는 아무것도 return하지 않지만 이 메소드가 한 일은 배열 data에 이미 반영되어있다
				}
			}
		}
	}

// 18_2
public static void main(String[] args) {

Scanner kb = new Scanner(System.in);
		
		int n = kb.nextInt();
		int [] data = new int[n];
		
		for (int i = 0; i < n; i++) {
		data[i] = kb.nextInt();
		}
		
		bubbleSort(n, data); // 데이터의 갯수 n, n개의 데이터가 저장되어있는 배열 data
		
		
		
		System.out.println("sorted data: ");
		for (int i = 0; i < n; i++) {
			System.out.print(data[i]);
		}
	}//
	
	static void bubbleSort(int n, int [] array) {
		for (int i = n-1; i > 0; i--) {
			for (int j = 0; j < i; j++) {
				if (array[j] > array[j+1]) {
					//swap array[j] and array[j+1]
					swap(array[j], array[j+1]); // 호출문
					
				}
			}
		}
	}
	
	static void swap(int a, int b) { //호출된 메소드, 값에 의한 호출로 실제 swap이 되지 않는다
		int tmp = a;
		a = b;
		b = tmp;
	}

값에 의한 호출이기 때문에 a와 b의 값을 변경해도 array[j], array[j+1]의 값에는 변화가 없다

0개의 댓글