프로그래밍/java

[Java] 명품 자바 프로그래밍 3장 실습 문제 풀이

승민아 2022. 4. 12. 15:20

1-1

0~99까지의 수 중에서 짝수만 더한다.

 

1-2

package extest;
import java.util.Scanner;
public class WhileTest {
	
	public static void main(String[] args) {
		
		int sum=0, i=0;
		while(i<100)
		{
			System.out.print(i+"\n");
			sum=sum+i;
			i+=2;
		}
		System.out.println(sum);
		
	}
}

 

1-3

package extest;
import java.util.Scanner;
public class ForTest {
	
	public static void main(String[] args) {
		
		int sum=0;
		for(int i=0;i<100;i+=2)
		{
			if(i%2==0)
				sum+=i;
		}
		System.out.println(sum);
		
	}
}

 

1-4

package extest;
import java.util.Scanner;
public class DoWhileTest {
	
	public static void main(String[] args) {
		
		int sum=0;
		int i = 0;
		do
		{
			if(i%2==0)
				sum+=i;
			i+=2;
		}while(i<100);
		
		System.out.print(sum);
	}
}

 

2번 문제

package extest;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		
		int n[][] = {{1},{1,2,3},{1},{1,2,3,4},{1,2}};
		
		for(int i=0;i<n.length;i++)
		{
			for(int j=0;j<n[i].length;j++)
			{
				System.out.print(n[i][j]+" ");
			}
			System.out.println();
		}
}
}

 

3번 문제

package extest;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		System.out.print("정수를 입력하세요>>");
		int n = scanner.nextInt();
		for(;n>0;n--)
		{
			for(int j=0;j<n;j++)
				System.out.print("*");
			System.out.println();

		}
		
}
}

 

4번 문제

package extest;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		System.out.print("소문자 알파벳을 입력하세요>>");
		char c = scanner.next().charAt(0);
		
		for(char i = c;i>='a';i--) {
			for(char j = 'a';j<=i;j++)
			System.out.print(j);
		System.out.println();
	}		

		
}
}

 

5번 문제

package extest;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		int arr[]= new int[10];
		System.out.print("양의 정수 10개를 입력하시오>>");
		for(int i=0;i<10;i++)
			arr[i]= scanner.nextInt();
		System.out.print("3의 배수는 ");
		for(int i=0;i<10;i++)
			if(arr[i]%3==0)
				System.out.print(arr[i]+" ");
		
}
}

 

6번 문제

package extest;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		

		Scanner scanner = new Scanner(System.in);
		int unit [] = {50000,10000,1000,500,100,50,10,1};
		System.out.print("금액을 입력하시오>>");
		int num = scanner.nextInt();
		for(int i=0;i<unit.length;i++)
		{
			if(num/unit[i]!=0) {
			System.out.println(unit[i]+"원 짜리 : "+num/unit[i]+"개");
			num -= unit[i]*(num/unit[i]);
			}
		}
		

}
}

 

7번 문제

package extest;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int arr [] = new int[10];
		for(int i=0;i<10;i++)
			arr[i] = (int)(Math.random()*10+1);
		int sum=0;
		System.out.print("랜덤한 정수들 : ");
		for(int i=0;i<10;i++)
		{
			System.out.print(arr[i]+" ");
			sum+=arr[i];
		}
		System.out.println();
		System.out.print("평균은 "+ sum/10.0);
		
		
}
}

 

8번 문제

package extest;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		Scanner scanner =  new Scanner(System.in);
		System.out.print("정수 몇개?");
		int num = scanner.nextInt();
		int arr[] = new int[num];
		for(int i=0;i<num;i++)
		{
			arr[i] = (int)(Math.random()*100+1);
			for(int j=0;j<i;j++)
			{
				if(arr[i]==arr[j])
				{
					i--;
					break;
				}
			}
		}

		for(int i=0;i<arr.length;i++) {
			System.out.print(arr[i]+" ");
			if((i+1)%10==0)
				System.out.println();
		}
		
	}
}

 

 

9번 문제

package extest;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		
		int arr[][] = new int[4][4];
		for(int i=0;i<arr.length;i++)
			for(int j=0;j<arr[i].length;j++)
				arr[i][j] = (int)(Math.random()*10+1);
		
		for(int i=0;i<arr.length;i++) {
			for(int j=0;j<arr[i].length;j++)
				System.out.print(arr[i][j]+" ");
			System.out.println();

		}		

	}
}

 

10번 문제

package extest;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		
		int arr[][] = new int[4][4];

		
		int cnt=0;
		while(cnt<10)
		{
			int y = (int)(Math.random()*4);
			int x = (int)(Math.random()*4);
			if(arr[y][x]==0)
			{
				arr[y][x] = (int)(Math.random()*10+1);
				cnt++;
			}
		}
		
		for(int i=0;i<arr.length;i++)
		{
			for(int j=0;j<arr[i].length;j++)
				System.out.print(arr[i][j]+" ");
			System.out.println();
		}
		
	}
}

[y][x]를 랜덤으로 생성 후 그 배열에 값이 없다면 1~10 랜덤 수를 넣고

cnt를 더해줍니다.

cnt가 10이 될때까지 반복합니다.

cnt가 10이라면 배열 arr에 10개의 랜덤 값이 들어간 겁니다.

 

11번 문제

package extest;
import java.util.Scanner;
public class Average {
	
	public static void main(String[] args) {
		
		int sum=0;
		for(int i=0;i<args.length;i++)
		{
			int n = Integer.parseInt(args[i]);
			sum+=n;
		}
		System.out.print((double)sum/args.length);

	}
}

 

12번 문제

package extest;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		
		int sum=0;
		for(int i=0;i<args.length;i++)
		{
			try {
				int num = Integer.parseInt(args[i]);
				sum+=num;
			}
			catch(NumberFormatException e){
				
			}	
		}
		System.out.print(sum);
		
	}
}

 

13번 문제

package extest;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		
		for(int i=1;i<=99;i++)
		{
			int cur = i;
			int cnt = 0;
			while(cur>0)
			{
				if(cur%10==3||cur%10==6||cur%10==9)
					cnt++;
				cur/=10;
			}
			
			if(cnt==1)
				System.out.println(i+" 박수 짝");
			else if(cnt==2)
				System.out.println(i+" 박수 짝짝");
		}
		
	}
}

 

14번 문제

package extest;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		String course[] = {"Java", "C++", "HTML5", "컴퓨터구조", "안드로이드"};
		int score[] = {95, 88, 76, 62, 55};
		
		while(true)
		{
			System.out.print("과목 이름>>");
			String name = scanner.next();
			if(name.equals("그만"))
				break;
			
			boolean flag = false;
			for(int i=0;i<course.length;i++)
			{
				if(course[i].equals(name)) {
					System.out.println(course[i]+"의 점수는 "+score[i]);
					flag = true;
					break;
				}
			}
			
			if(flag==false)
				System.out.println("없는 과목 입니다.");
		}
		
	}
}

 

15번 문제

package extest;
import java.util.InputMismatchException;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		
		
		while(true){
		System.out.print("곱하고자 하는 두 수 입력>>");

		try {
		int n = scanner.nextInt();
		int m = scanner.nextInt();
		System.out.print(n+"x"+m+"="+n*m);
		break;
		}
		catch(InputMismatchException e) {
			System.out.println("실수는 입력하면 안됩니다.");
			scanner.nextLine();
		}
	}
		
}
}

 

16번 문제

package extest;
import java.util.InputMismatchException;
import java.util.Scanner;
public class exstudy {
	
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		String rsp[] = {"가위","바위","보"};
		
		System.out.println("컴퓨터와 가위 바위 보 게임을 합니다.");
		while(true)
		{
			System.out.print("가위 바위 보!>>");
			String str = scanner.next();
			if(str.equals("그만"))
				break;
			
			int n = (int)(Math.random()*3);
			if(rsp[n].equals("가위"))
			{
				if(str.equals("가위"))
					System.out.println("사용자="+str+" 컴퓨터="+rsp[n]+"  비겼습니다.");
				else if(str.equals("바위"))
					System.out.println("사용자="+str+" 컴퓨터="+rsp[n]+"  이겼습니다..");
				else
					System.out.println("사용자="+str+" 컴퓨터="+rsp[n]+"  졌습니다.");
			}
			else if(rsp[n].equals("바위"))
			{
				if(str.equals("가위"))
					System.out.println("사용자="+str+" 컴퓨터="+rsp[n]+"  졌습니다.");
				else if(str.equals("바위"))
					System.out.println("사용자="+str+" 컴퓨터="+rsp[n]+"  비겼습니다.");
				else
					System.out.println("사용자="+str+" 컴퓨터="+rsp[n]+"  이겼습니다.");
			}
			else
			{
				if(str.equals("가위"))
					System.out.println("사용자="+str+" 컴퓨터="+rsp[n]+"  이겼습니다.");
				else if(str.equals("바위"))
					System.out.println("사용자="+str+" 컴퓨터="+rsp[n]+"  졌습니다.");
				else
					System.out.println("사용자="+str+" 컴퓨터="+rsp[n]+"  비겼습니다.");
			}
			
		}
}
}