티스토리 뷰
가끔은 반올림 대신 올림을 해야 하는 경우도 있다. 천장을 칠하는 데 필요한 페인트 양을 구하는 프로그램을 작성하라. 길이와 폭을 입력 받은 다음, 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
'Coding Training > C#' 카테고리의 다른 글
코딩트레이닝 C# 연습문제 11. 환율 변환 (0) | 2018.07.25 |
---|---|
코딩트레이닝 C# 연습문제 10. 셀프계산대 (0) | 2018.07.24 |
코딩트레이닝 C# 연습문제 08. 피자 파티 (0) | 2018.07.18 |
코딩트레이닝 C# 연습문제 07. 직사각형 방의 면적 (0) | 2018.07.12 |
코딩트레이닝 C# 연습문제 06. 퇴직 계산기 (0) | 2018.07.04 |
댓글
글 보관함
최근에 올라온 글
최근에 달린 댓글