코딩 연습장/JAVA

자바 3장 연습문제(반복문)-2

Do아 2021. 3. 18. 10:01
728x90

2021/03/10(수)

3-5) 양의 정수를 10개 입력받아 배열에 저장하고, 배열에 있는 정수 중에서 3의 배수만 출력하는 프로그램을 작성하라.

양의 정수 10개를 입력하시오 >> 1 5 99 22 345 154 2346 55 32 85

3의 배수는 99 345 2346

3-6 ) 배열과 반복문을 이용하여 프로그램을 작성해보자. 키보드에서 정수로 된 돈의 액수를 입력받아 오만 원권, 만 원권, 천 원권, 500원짜리 동전, 100원짜리 동전, 50원짜리 동전, 10원짜리 동전, 1원짜리 동전이 각 몇개로 변환되는지 예시와 같이 출력하라. 이때 반드시 다음 배열을 이용하고 반복문으로 작성하라.

int [] unit = {50000, 10000, 1000, 500, 10, 50, 10, 1};

금액을 입력하시오 >> 65123

50000원 짜리 : 1개

10000원 짜리 : 1개

1000원 짜리 : 5개

100원 짜리 : 1개

10원 짜리 : 2개

1월 짜리 : 3개

3-7)정수를 10개 저장하는 배열을 만들고 1에서 10까지 범위의 정수를 랜덤하게 생성하여 배열에 저장하라. 그리고 배열에 든 숫자들과 평균을 출력하라.

랜덤한 정수들 : 10 5 2 9 1 4 1 5 1 5

평균은 4.3

3-8) 정수를 몇 개 저장할지 키보드로부터 개수를 입력받아(100보다 작은 개수) 정수 배열을 생성하고, 이곳에 1에서 100까지 범위의 정수를 랜덤하게 삽입하라. 배열에는 같은 수가 없도록하고 배열을 출력하라

정수 몇개? 24

48 33 74 94 17 39 55 8 59 81

72 31 63 90 75 2 85 19 84 24

98 32 86 58

내 풀이

3-5)

import java.util.Scanner;

public class Hw03_5 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int[] number = new int[10];
		System.out.print("양의 정수 10개를 입력하시오 >> ");
		
		//배열 10개의 값을 입력
		for(int i=0; i<number.length; i++) 
			number[i] = scan.nextInt();
		
		System.out.print("3의 배수는 ");
		
		//배열을 돌며 3으로 나눈 나머지가 0일 때(3의 배수) 출력
		for(int j=0; j<number.length; j++) {
			if(number[j] %3 ==0)
				System.out.print(number[j] +" ");
		}
	}
}

3-6)

import java.util.Scanner;

public class Hw3_6 {
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		int [] unit = {50000, 10000, 1000, 500, 100, 50, 10, 1};
		
		System.out.print("금액을 입력하시오>> ");
		int money = scan.nextInt();
		
		for(int i =0; i<unit.length; i++) {
			if(money/unit[i] >=1)
				System.out.println(unit[i]+"원 짜리 : "+ money/unit[i] + "개");
			money = money%unit[i];
		}
	}
}

지난번에 배열과 반복문을 사용해서 나타냈는데 나머지와 몫을 저장 안시키고서

3-7)

public class Sw03_7 {
	public static void main(String[] args) {
		int[] random = new int[10];
		int sum=0;
		
		System.out.print("랜덤한 정수들 : ");
		for(int i =0; i<random.length; i++) {
			
			//1~10까지 랜덤한 수 생성
			random[i] = (int)(Math.random()*10+1);
			System.out.print(random[i] +"  ");
			sum +=random[i];
		}
		System.out.println("\n평균은 "+ sum/10.0 );
	}
}

3-8)

import java.util.Scanner;

public class Sw03_8 {
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		
		//정수 받아오기
		System.out.print("정수 몇개?");
		int howMany = scan.nextInt();
		
		//정수 크기만큼 배열 선언
		int[] randomNum = new int[howMany]; 
		
		
		for(int i = 0; i<howMany; i++) {
			
			//랜덤 숫자 부여
			randomNum[i] = (int)(Math.random()*100+1);
			
			//전 배열의 값 비교
			for(int j=0; j<=i; j++) {
				
				//같은 배열의 값 비교시
			 if(i == j) {
				 continue;
			 }
			 else
				 if(randomNum[i]==randomNum[j]) {
					 //반복문 전단계로 다시 실행
					i--;
					break;
				 }
			}
		}
		
		for(int i = 0; i<howMany; i++) {
			System.out.print(randomNum[i] + " ");
			if((i+1)%10==0) {
				System.out.println();
			}
		}
	}
}

시간은 오래걸렸지만 해냈다 ㅎ

728x90