티스토리 뷰

나눗셈은 항상 딱 떨어지지만은 않기 때문에 종종 소수 대신 몫과 나머지를 다루는 프로그램을 작성해야 할 때도 있다. 피자를 정확하게 나누는 프로그램을 작성하라. 사람 수, 피자 개수,조각 개수를 입력 받는데, 이때 조각 개수는 짝수여야 한다. 일단 한 사람이 받게 되는 피자 조각 개수를 출력해보자. 만일 남는 조각이 있다면 그 개수도 나타내보자.

#출력 예 How many people? 8

How many pizzas do you have? 2

How many pieces are in a pizza? 8

8 people with 2 pizzas

Each person gets 2 pieces of pizza.

There are 0 leftover pieces.

#도전 과제

  • 입력 값으로 숫자만 받을 수 있도록 프로그램을 수정해보자. 숫자가 입력될 때까지 진행되지 않도록 하라.
  • 출력 내용을 변경하여 수일치가 되도록 하라.

예)

Each person gets 2 pieces of pizza

또는

Each person gets 1 piece of pizza

남은 피자 조각도 위와 같이 수일치를 하여 출력되도록 하라.

  • 사람 수와 한 사람당 원하는 피자 조각 수를 입력 받은 다음, 피자를 몇 판 구매해야 하는지 계산하는 프로그램을 작성하라.




My code


static void Main(string[] args)
{
    int people, pizza, pizzapiece;
    int quotient, remainder;
 
    // 출력 예대로 출력하도록 작성 및 입력 값 받기
    Console.Write("How many people? ");
    people = IsInt(Console.ReadLine());
    Console.Write("How many pizzas do you have? ");
    pizza = IsInt(Console.ReadLine());
    Console.Write("How many pieces are in a pizza? ");
    pizzapiece = IsInt(Console.ReadLine());            
           
    Console.WriteLine("{0} people with {1} {2}", people, pizza, pizza > 1 ? "pizzas" : "a pizza");  // 삼항연산자를 이용해 수일치
 
    quotient = (pizza * pizzapiece) / people;
    remainder = (pizza * pizzapiece) % people;
            
    Console.WriteLine("Each person gets {0} {1} of pizza.", quotient, quotient > 1 ? "pieces" : "piece");
 
    // 피자 조각의 나머지가 발생할 때
    if (remainder > 0)
    {
        Console.WriteLine("and {0} {1} left.", remainder, remainder > 1"pieces" : "piece");
                
        // 한 사람당 원하는 피자 조각 수를 입력 받은 다음, 피자를 몇 판 구매해야 하는지 계산
        Console.Write("How many pieces of pizza do you want per person? ");
        int peoplepizzapiece = IsInt(Console.ReadLine());
 
        pizza = (peoplepizzapiece * people) / pizzapiece;
 
        Console.WriteLine("You have to buy {0} {1}.", pizza, pizza > 1"pizzas" : "pizza");
    }
 
    Console.ReadLine();
}
 
// 입력 값이 숫자인지 확인하여, 숫자가 아니면 다시 입력 값을 받도록 함.
static int IsInt(string _s)
{
    int _int;
 
    if (int.TryParse(_s, out _int))
        return _int;
    else
        return IsInt(Console.ReadLine());
}
cs




Result


- 피자 조각의 나머지가 없을 때(if문이 발생 안할 때 화면)


- 피자 조각의 나머지가 있을때(if문이 발생할 때 화면)




댓글
글 보관함
최근에 올라온 글
최근에 달린 댓글