[필기정리] Day3 - 난수, 진법, 예시문제

SW/Java

2020. 6. 19. 23:23

#난수 : 정의된 범위 내에서 무작위로 추출된 수

ex)

import java.util.Random;
class RandomTest
{
	public static void main(String[] args)
    {
    	Random rand = new Random();
        int num=0;
        
        num=rand.nextInt(100);
        System.out.println(num);
     }
}       

Q. 1 ~ 100 사이 임의의 난수를 발생시킨다. (숫자 맞추기 게임)

ex) 게임을 시작합니다

     숫자를 입력하세요.

    (입력)

     당신이 입력한 숫자보다 큽니다.

    (입력)

    당신이 입력한 숫자보다 작습니다.

    (입력)

    정답입니다. 당신은 n번 만에 정답을 입력하셨습니다. 프로그램을 종료합니다.

 

A.

import java.util.Random;
import java.util.Scanner;
class NumberGame
{
	public static void main(String[] args)
    {
    	Random rand = new Random();
        Scanner sc = new Scanner(System.in);
        int rnum=0, num=0, cnt=0;
        
        rnum=rand.nextInt(100)+1;
        
        System.out.println("게임을 시작합니다");
        System.out.println("숫자를 입력하세요");
        while(true)
        {
        	cnt++;
            num=sc.nextInt(100);
            if(rnum>num)
            	System.out.println("당신이 입력한 숫자보다 큽니다");
            else if(rnum<num)
            	System.out.println("당신이 입력한 숫자보다 작습니다");
            else
            	{
                	System.out.println("정답입니다");
                    System.out.println("당신은 "+cnt+"번 만에 정답을 입력하셨습니다");
                    break;
                }
         }       
     }
System.out.println("프로그램을 종료합니다.");
sc.close();
}

 

#와일드문자

*(에스테티크) : 모든

dir

dir*

dir*,*

dir*.log : 확장자가 log인 모든 파일 목록을 보여달라

dir N* : N으로 시작하는 모든 파일 목록을 보여달라

dir N*.java : N으로 시작하는 모든 파일 중 .java인 것을 보여달라

 

#진법

- 10진수 : 10이 되면 자리가 하나씩 올라가는 진법

- 2진수 : 컴퓨터가 이해하는 진수, 0과 1로 이루어져 있다. 10진수를 2로 나누어 계산

- 8진수, 16진수 : 2진수의 숫자가 길기 때문에 가독성이 떨어지는 문제를 보완하기 위해 만들어짐

                      8진수는 8로, 16진수는 16으로 10진수 숫자를 나누어 계산

                      오른쪽 끝을 기준으로 2진수를  8진수는 3자리씩 묶고, 16진수는 4자리씩 묶는다.

- 계산기(calc.exe) → 보기(프로그래머용)

   → HEX : 16진수

       DEC : 10진수

       OCT : 8진수

       BIN : 2진수           

 

# 자료형의 종류

데이터타입명 형식 크기 값의 범위
boolean 참, 거짓 1바이트 true, false
char 문자형 2바이트 모든 유니코드 문자
byte 정수형 1바이트 -128 ~ 127
short 2바이트  
int 4바이트  
long 8바이트  
float 실수형 4바이트  
double 8바이트  

                                  

# 소수(Prime Number) : 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수

   ㄴ ex) 2.5(o), 9(x)

 

Q. 임의의 수를 소수인지 아닌지 출력하시오.

A. ★자주 쓰이는 기법

- flag ex) 돼지 검 도장, 케이크 위 깃발

import java.util.Scanner;
class Prime
{
	public static void main(String[] args)
    {
    	int num=0, i=0;
        boolean flag=true;
        Scanner sc = new Scanner(System.in);
        
        System.out.println("소수 판별 프로그램");
        System.out.println("판별하고 싶은 숫자를 입력하세요.");
        num=sc.nextInt();
        
        if(num<=1) System.out.println(num+"소수가 아닙니다.");
        else
        {
        	for(i=2;i<num;i++)
            {
            	if(num%i==0)
                {
                	flag=false;
                    break;
                }
            }
            if(flag) System.out.println(num+"소수입니다.");
            else System.out.println(num+"소수가 아닙니다.");
        }
    }   
}            	

Q. 1 ~ 100 사이의 모든 소수를 출력하시오.

A.

class Prime2
{
	public static void main(String[] args)
    {
    	int num=0, i=0;
        for(num=2;num<=100;num++)
        {
        	for(i=2;i<num;i++)
            {
            	if(num%i==0)break;
            }
            if(num==i) System.out.println(num); 
		}
     }
}     

Q. 구구단 2단을 출력하시오.

A.

class Test1
{
	public static void main(String[] args)
    {
    	int i=2, a=1;
        for(a=1;a<=9;a++)
        {
        	System.out.println(i+"*"+a+"="+i*a); 
		}
     }
}     

Q. 구구단 전체를 출력하시오. (세로)

A. 

 

class Test2
{
	public static void main(String[] args)
    {
    	int i=2, a=1;
        for(i=2;i<=9;i++)
        {
        	System.out.println(i+"단");
            for(a=1;a<=9;a++)
            {
            	System.out.println(i+"*"+a+"="+i*a);	
			}
            System.out.println();
        }
     }
}     

Q. 구구단 전체를 출력하시오. (가로)

A. 

class Test3
{
	public static void main(String[] args)
    {
    	int i=1, a=2;
        for(i=1;i<=9;i++)
        {
        	for(a=2;a<=9;a++)
            {
            	System.out.println(i+"*"+a+"="+i*a+"\t");	
			}
            System.out.println();
        }
     }
}     

 

-  이스케이프 시퀀시(escape sequence)

    \n : 다음줄로 이동 ex) 안녕

                                  하세요

    \t : 탭만큼 띄어쓰기 ex) 안녕    하세요

 

Q. 구구단 짝수 단만 출력하되, 2단은 2*2까지, 4단은 4*4까지 6단은 6*6까지 8단은 8*8까지만 출력하시오.

A. 

class Test4
{
	public static void main(String[] args)
    {
    	int i=2, a=1;
        for(i=2;i<=9;i+=2)
        {
        	for(a=1;a<=9;a++)
            {
            	System.out.println(i+"*"+a+"="+i*a);	
			}
            System.out.println();
        }
     }
}     

Q. 다음 식을 만족하는 모든 A와 B의 조합을 구하는 프로그램을 작성하시오.

    ex) AB+BA = 99 → 9+90=99

A. 

class Test5
{
	public static void main(String[] args)
    {
    	int i=0, a=0;
        for(i=0;i<=9;i++)
        {
        	for(a=0;a<=9;a++)
            {
            	if((i*10+a)+(a*10+i)==99)
                System.out.println(i+" "+a+" "+a+" "+i+"=99");	
			}
        }
     }
}     

Q. 1 2 3 4 5

    6 7 8 9 10

    11 12 13 14 15

    16 17 18 19 20

    21 22 23 24 25

A.

class Test6
{
	public static void main(String[] args)
    {
    	int i=0, a=0;
        int num=1;
        for(i=0;i<5;i++)
        {
        	for(a=0;a<5;a++)
            {
                System.out.println(num+"\t");
                num++;
			}
            System.out.println();
        }
     }
}     

Q. 28 27 26

    25 24 23

    22 21 20

A.

class Test7
{
	public static void main(String[] args)
    {
    	int i=0, a=0;
        int num=28;
        for(i=0;i<3;i++)
        {
        	for(a=0;a<3;a++)
            {
                System.out.println(num+" ");
                num--;
			}
            System.out.println();
        }
     }
}     

Q. *

    **

    ***

    ****

    *****

A.

class Test8
{
	public static void main(String[] args)
    {
    	int i=0, a=0;
        for(i=0;i<5;i++)
        {
        	for(a=0;a<=i;a++)
            {
                System.out.print("*");
			}
            System.out.println();
        }
     }
}     

Q. *******

     *****

      ***

       *

A.

class Test9
{
	public static void main(String[] args)
    {
    	int i=0, a=0;
        for(i=0;i<4;i++)
        {
        	for(a=0;a<i;a++)
            {
                System.out.println(" ");
			}
            for( ;a<7-i;a++)
            {	
            	System.out.println("*");
            }
            System.out.println();
        }
     }
}     

 

#switch ~ case ~ default문

ex1)

import java.util.Scanner;
class SC1
{
	public static void main(String[] args)
    {
    	int menu=0;
        Scanner sc = new Scanner(System.in);
  3  햄버거 
        System.out.println("Menu");". 피자"
        System.out.println("1. 피자");
        System.out.println("2. 스파게티");
        System.out.println("3. 햄버거");
        System.out.println("4. 스프");
        System.out.println("선택 : ");
        menu.sc.nextInt();
        
        switch(menu)
        {
        	case1:
            	System.out.println("당신은 피자를 선택하셨습니다.");
            case2:
            	System.out.println("당신은 스파게티를 선택하셨습니다.");
            case3:
            	System.out.println("당신은 햄버거를 선택하셨습니다.");
            case4:
            	System.out.println("당신은 스프를 선택하셨습니다.");
            default:
            	System.out.println("당신은 잘못 선택하셨습니다.");
        }
     }
}     

ex2)

import java.util.Scanner;
class SC2
{
	public static void main(String[] args)
    {
    	int menu=0;
        Scanner sc = new Scanner(System.in);
  3  햄버거 
        System.out.println("Menu");". 피자"
        System.out.println("1. 피자");
        System.out.println("2. 스파게티");
        System.out.println("3. 햄버거");
        System.out.println("4. 스프");
        System.out.println("선택 : ");
        menu.sc.nextInt();
        
        switch(menu)
        {
        	case1:
            	System.out.println("당신은 피자를 선택하셨습니다.");
                break;
            case2:
            	System.out.println("당신은 스파게티를 선택하셨습니다.");
                break;
            case3:
            	System.out.println("당신은 햄버거를 선택하셨습니다.");
                break;
            case4:
            	System.out.println("당신은 스프를 선택하셨습니다.");
                break;
            default:
            	System.out.println("당신은 잘못 선택하셨습니다.");
        }
     }
}     

ex3)

import java.util.Scanner;
class SC2
{
	public static void main(String[] args)
    {
    	int menu=0;
        Scanner sc = new Scanner(System.in);
  3  햄버거 
        System.out.println("Menu");". 피자"
        System.out.println("1. 피자");
        System.out.println("2. 스파게티");
        System.out.println("3. 햄버거");
        System.out.println("4. 스프");
        System.out.println("선택 : ");
        menu.sc.nextInt();
        
        if(menu==1)
            System.out.println("당신은 피자를 선택하셨습니다.");
        else if((menu==2)
            System.out.println("당신은 스파게티를 선택하셨습니다.");
        else if((menu==3)
            System.out.println("당신은 햄버거를 선택하셨습니다.");
        else if((menu==4)
            System.out.println("당신은 스프를 선택하셨습니다.");
        else
           	System.out.println("당신은 잘못 선택하셨습니다.");
     }
}     

 

728x90