티스토리 뷰

가끔은 반올림 대신 올림을 해야 하는 경우도 있다. 천장을 칠하는 데 필요한 페인트 양을 구하는 프로그램을 작성하라. 길이와 폭을 입력 받은 다음, 1리터에 {9m}^2를 칠한다고 가정하여 계산하자. 그리고 천장을 칠하는 데 필요한 페인트 양을 정수로 표현해보자.

#출력 예 You will need to purchase 2 liters of

paint to cover 10 square meters.

반드시 1리터짜리 통 단위로 페인트를 구매해야 한다. 그렇기 때문에 이 문제를 해결하기 위해서는 반드시 올림을 해야 한다.

#제약 조건

  • 상수를 사용하여 변환 상수를 저장할 것
  • 반드시 올림을 해서 정수 단위로 구할 것

#도전 과제

  • 입력 값으로 숫자만 받을 수 있도록 프로그램을 수정해보자. 숫자가 입력될 때까지 진행되지 않도록 하라.
  • 원 모양의 방도 계산할 수 있도록 하라.
  • ㄴ자 모양의 방도 계산할 수 있도록 하라.
  • 모바일 버전으로 프로그램을 작성하여 철물점에서 사용할 수 있도록 하라.



My code


static void Main(string[] args)
{
    First:
    Console.WriteLine("Getting the amount of paint to paint the ceiling.");
    Console.WriteLine("1. if shape of ceiling is sqaure.");
    Console.WriteLine("2. if shape of ceiling is circle.");
    Console.WriteLine("3. if shape of ceiling is L type.");
    Console.Write("Enter number. ");
    int number = int.TryParse(Console.ReadLine(), out number) ? number : 0;
 
    switch (number)
    {
        case 0:
            goto First;
        case 1:
            Square();
            break;
        case 2:
            Circle();
            break;
        case 3:
            LType();
            break;
    }
 
    Console.ReadLine();
}
 
// 천장 모양이 사각형일 때
static void Square()
{
    Console.Write("What is the length of the ceiling in meters? ");
    int length = int.TryParse(Console.ReadLine(), out length) ? length : int.TryParse(Console.ReadLine(), out length) ? length : int.TryParse(Console.ReadLine(), out length) ? length : int.TryParse(Console.ReadLine(), out length) ? length : int.TryParse(Console.ReadLine(), out length) ? length : 0;
    Console.Write("What is the width of the ceiling in meters? ");
    int width = int.TryParse(Console.ReadLine(), out width) ? width : int.TryParse(Console.ReadLine(), out width) ? width : int.TryParse(Console.ReadLine(), out width) ? width : int.TryParse(Console.ReadLine(), out width) ? width : int.TryParse(Console.ReadLine(), out width) ? width : 0;
 
    double sResult = length * width;
    int paint = (int)Math.Ceiling(sResult / 9);
 
    Console.WriteLine("You will need to purchase {0} liters of paint to cover {1} square meters.", paint, sResult);
}
 
// 천장 모양이 동그랄 때
static void Circle()
{
    Console.Write("What is the radius of the ceiling in meters? ");
    int length = int.TryParse(Console.ReadLine(), out length) ? length : int.TryParse(Console.ReadLine(), out length) ? length : int.TryParse(Console.ReadLine(), out length) ? length : int.TryParse(Console.ReadLine(), out length) ? length : int.TryParse(Console.ReadLine(), out length) ? length : 0;
 
    double sResult = length * Math.PI;
    int paint = (int)Math.Ceiling(sResult / 9);
 
    Console.WriteLine("You will need to purchase {0} liters of paint to cover {1} circle meters.", paint, Convert.ToInt32(sResult));
}
 
// 천장 모양이 L형일 때
static void LType()
{
    Console.Write("What is the left length of the ceiling in meters? ");
    int lengthleft = int.TryParse(Console.ReadLine(), out lengthleft) ? lengthleft : int.TryParse(Console.ReadLine(), out lengthleft) ? lengthleft : int.TryParse(Console.ReadLine(), out lengthleft) ? lengthleft : int.TryParse(Console.ReadLine(), out lengthleft) ? lengthleft : int.TryParse(Console.ReadLine(), out lengthleft) ? lengthleft : 0;
    Console.Write("What is the right length of the ceiling in meters? ");
    int lengthright = int.TryParse(Console.ReadLine(), out lengthright) ? lengthright : int.TryParse(Console.ReadLine(), out lengthright) ? lengthright : int.TryParse(Console.ReadLine(), out lengthright) ? lengthright : int.TryParse(Console.ReadLine(), out lengthright) ? lengthright : int.TryParse(Console.ReadLine(), out lengthright) ? lengthright : 0;
    Console.Write("What is the top width of the ceiling in meters? ");
    int widthtop = int.TryParse(Console.ReadLine(), out widthtop) ? widthtop : int.TryParse(Console.ReadLine(), out widthtop) ? widthtop : int.TryParse(Console.ReadLine(), out widthtop) ? widthtop : int.TryParse(Console.ReadLine(), out widthtop) ? widthtop : int.TryParse(Console.ReadLine(), out widthtop) ? widthtop : 0;
    Console.Write("What is the bottom width of the ceiling in meters? ");
    int widthbottom = int.TryParse(Console.ReadLine(), out widthbottom) ? widthbottom : int.TryParse(Console.ReadLine(), out widthbottom) ? widthbottom : int.TryParse(Console.ReadLine(), out widthbottom) ? widthbottom : int.TryParse(Console.ReadLine(), out widthbottom) ? widthbottom : int.TryParse(Console.ReadLine(), out widthbottom) ? widthbottom : 0;
 
    double sResult1 = lengthleft * widthtop;
    double sResult2 = lengthright * (widthbottom - widthtop);
    int paint = (int)Math.Ceiling(sResult1 / 9+ (int)Math.Ceiling(sResult2 / 9);
 
    Console.WriteLine("You will need to purchase {0} liters of paint to cover {1} first square meters and {2} second square meters.", paint, sResult1, sResult2);
}
cs




Result



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