프로그래밍/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]+" 비겼습니다.");
}
}
}
}