본문 바로가기

반응형

C || C++/Problems

(5)
[ C005 ] - 파스칼의 삼각형 [설명] 파스칼의 삼각형을 출력하는 프로그램을 함수로 작성하시오. 출력할 행의 수는 입력을 받아 처리합니다. [처리방법과 기준] 파스칼의 삼각형은 자연수를 삼각형 모양으로 배열한 것으로 1303년 중국인에 의해 유럽에 알려졌으나, 프랑스의 철학자이자 수학자인 파스칼이 여기서 흥미로운 성질을 발견하였기에 파스칼의 삼각형이라 부르게 되었습니다. 파스칼의 삼각형을 만드는 방법은 각 행의 처음은 1을 쓰고 이어서 바로 위의 행의 두 수를 합한 결과를, 이어서 마지막 부분에는 1을 다시 쓰는 과정을 다음행에서도 반복하는 것입니다. 위의 식을 이항정리하여보면, 구분 처리할 내용 입력 출력할 행(row)의 수 처리 이항 정리에 의해 삼각형의 숫자 계산 출력 숫자 출력 #include int Factorial(int ..
[ C004 ] - 2010년 달력만들기 [설명] 1. 1월 1일은 금요일이다. 2. 2월은 28일이다. 3. 일, 월, ......, 토 의 순서로 출력한다. 4. 한 달의 출력 형태는 다음과 같다. 1월 일 월 화 수 목 금 토 1 2 3 4 5 6 7 .......... #include int MonthPrint( const int, const int, int ); int main() { int i, startDay = 5; const int monthDay[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } ; for ( i = 0 ; i < 12 ; i++ ) startDay = MonthPrint( i + 1, monthDay[i], startDay); return 0; } int M..
[ C003 ] - 소수 이하 임의의 자릿수에서 반올림 [설명] 소수 이하 임의의 자릿수에서 반올림하는 프로그램을 함수로 작성하시오. [문제 분석] 구분 처리할 내용 입력 임의의 실수(double 형), 반올림할 자릿수(long 형) 처리 사용자 정의 함수로 처리 출력 반올림한 결과를 출력 [입력 예] 반올림할 실수를 입력하세요 : 3.1456789 반올림할 자릿수를 입력하세요 : 4 [출력 예] 입력한 실수 : 3.1456789 소수 이하 4자리 반올림 결과 : 3.146000 [처리방법과 기준] 소수 이하 첫째 자리에서 반올림은 임의의 실수에 0.5를 더한 다음 그 값을 정수형으로 만들거나 정수형 변수에 저장하는 방법을 이용합니다. 그리고 소수 이하 둘째 자리에서의 반올림은 소수 이하 첫째 자리 반올림 문제로 변환하여 풀 수 있습니다. 즉, 임의의 실수를..
[ C002 ] - 1부터 100까지의 합 구하기 [설명] 1부터 100까지의 총 합을 구한다. 단, 프로그램에 사용되는 모든 변수의 자료형은 unsigned char 형으로 한다. 1. 첫 번째 방법 ∑ 를 이용하여 1부터 N까지의 합을 구하면 N*(N+1) / 2 로 구할 수 있다. #include int main() { unsigned char max = 100; printf( "Sum of 1 to %d : %d\n", max, ( max * ( max + 1 ) ) / 2 ); return 0; } 2. 두 번째 방법 첫 번째 방법을 이용하여 얻은 답을 unsigned char 형 변수로 저장하고 표현하였다. #include int main() { unsigned char max = 100; unsigned char hsum = 0, lsum ..
[ C001 ] - 최대공약수와 최소공배수 [설명] 임의의 두 정수를 입력 받아 유클리드 호제법을 이용하여, 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. [처리방법과 기준] 입력될 두 숫자를 x, y라하고 x < y 임을 가정합니다. x를 m에, y를 n에 저장하여(m은 분자, n은 분모를 의미) 다음 반복에 의해 최대 공약수와 최소 공배수를 계산합니다. 반복 m % n을 계산 그 값이 0이면 n은 최대 공약수(반복 벗어남) 그렇지 않으면 m에 n을 기억, 나머지 값을 n에 저장 이때n은 최대 공약수이며 최소 공배수는n*(x/n)*(y/n)으로 계산합니다. [문제 분석] 구분 처리할 내용 입력 임의의 두 정수 처리 반복처리에 의해 최대 공약수를 계산, 최대 공약수로 최소 공배수를 계산 출력 최대 공약수, 최소 공배수 [입력 예] ..

반응형