관리 메뉴

Gyejoong's Information

C언어 Express Chapter.7 - 반복문 Programming 본문

etc

C언어 Express Chapter.7 - 반복문 Programming

연계중 2016. 5. 14. 15:05
반응형




P.286 7번 문제


2와 100사이에 있는 모든 소수(prime number)를 찾는 프로그램을 작성하기.


정수가 소수가 되려면 1과 자기 자신만을 약수로 가져야 한다.


실행결과

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97


힌트 : 소수의 약수의 개수는 항상 2개이다. 따라서 1부터 자기 자신 사이에 약수의 개수를 세어서 2개이면 소수라고 결론을 내리면 된다.



P.287 8번 문제


컴퓨터는 막대 그래프를 그리는 데도 사용된다. 사용자로부터 1부터 50사이의 숫자를 입력 받아서 숫자만큼의 별표를 출력하는 프로그램을 


작성하라. 막대는 세로로 그려지게 된다.


실행결과

막대의 높이(종료: -1): 10 Enter

**********

막대의 높이(종료: -1): 20 Enter

********************

...


힌트 : 입력받은 막대의 높이만큼 반복하면서 '*'을 출력하면 된다. 중첩 반복 구조를 사용한다.



P.287 9번 문제


(1+2+3+...+n)가 10000을 넘지 않으면서 가장 큰 값과 그 때의 n의 값을 구하라.


실행결과

1부터 140까지의 합이 9870입니다.


힌트 : 무한 루프를 실행하면서 sum에 i의 값을 더한다. 반복할 때마다 i는 1씩 증가된다. sum이 10000을 넘으면 break를 실행한다.

(i-1)과 (sum-i)을 출력하면 된다.



P.287 10번 문제


실수의 거듭 제곱값을 계산하는 프로그램을 작성하여 보자. 사용자로부터 하나의 실수 r와 거듭 제곱 횟수를 나타내는 정수 n을 입력받아서 

을 구하여 화면에 출력한다.


실행결과

실수의 값을 입력하시오:2

거듭제곱횟수를 입력하시오:10

결과값은 1024.000000


힌트 : i를 1부터 n까지 증가시키면서 result에 r을 곱해준다. result의 초기값은 1.0이어야 한다.



P.287 11번 문제


의 값을 계산하여 출력하여 보자.


실행결과

n의 값을 입력하시오: 10

계산값은 385입니다.


힌트 : i를 1부터 n까지 증가시키면서 result에 i*i를 더한다. result의 초기값은 0이어야 한다.



P.287 12번 문제


피보나치 수열은 다음과 같이 정의되는 수열이다.


                


피보나치 수열에서는 앞의 2개의 원소를 합하여 뒤의 원소를 만든다. 피보나치 수열은 컴퓨터에서도 탐색 문제 등에 사용되기도 한다. 피보나치 수열을 생셩하여 출력하는 프로그램을 작성하여 보자.


실행결과

몇 번째 항까지 구할까요? 10

0 1 1 2 3 5 8 13 21 34 55


힌트 : 3개의 변수 a=0, b=1, c를 사용하여서 c=a+b; a=b; b=c;을 반복한다.



P.288 13번 문제

서로 다른 n개에서 r개를 택하여 일렬로 나열하는 방법의 수를 순열(permutation)이라 하고, 로 표시한다. 순열은 다음과 같은 식을 이용하여 구할 수있다. 순열을 구하는 프로그램을 작성하라. n과 r은 사용자가 입력할 수 있도록 하라.



실행결과

n의 값: 10 Enter

r의 값: 3 Enter

순열의 값은 30240입니다.


힌트 : for(i=n; i>=(n-r-1); i--) 스타일의 반복문을 사용하는 것이 편리하다. 부등호의 방향에 주의하라.



P.288 14번 문제


사용자가 입력한 특정한 정수의 자리수를 반대로 출력하는 프로그램을 작성하라. 예를 들어서 사용자가 정수 1206을 입력하였다면 6021이 출력되어야 한다. 만약 음수를 입력하면 오류 메시지를 출력하라. do...while 문을 사용하여 보라.


실행결과

정수를 입력하시오: 1206

6021


힌트 : 1의 자리수는 n % 10으로 구할 수 있다. 10의 자리수는 먼저 n으로 나눈 후에 n % 10 하면 된다. 100의 자리수는 n을 100으로 나눈 후에 n % 10 하면 된다. 한번 반복할 때마다 하나의 자리수가 구해지도록 하라.



반응형

'etc' 카테고리의 다른 글

[C언어로 해보는 알고리즘]1. 순차탐색(sequence search)  (0) 2016.06.12
4. 꽃 결과  (0) 2016.05.12
3. 선물 꾸러미 결과  (0) 2016.05.12
Comments