Develop
2003.04.23 11:02
[c] 단기과정[01/07] 제어문, 피보나치수열
조회 수 8615 댓글 0
ax² + bx + c = 0 x 값의 출력
입력 a, b, c 출력(x의 값)
a=0, b=0, c=0 부정
a=0. b=0. c!=0 불능
a=0, b!=0 -c/b
a!=0 b² - 4ac < 0 인경우 허수
b² - 4ac >=0 인경우 2차 방정식의 근의 해 존재
if문으로 작성
#include<stdio.h>
void main(){
int a, b, c;
printf("Enter a, b, c : ");
scanf("%d %d %d", &a, &b, &c);
if(a==0){
if(b==0){
if(c==0) printf("Undefined!!n");
else printf("Impossible!!n");
}else printf("-c/b!!n");
}else{
if(b*b-4*a*c>=0) printf("Possible!!n");
else printf("Impossible!!n");
}
}조건연산자로 작성
#include<stdio.h>
void main(){
int a, b, c;
printf("Enter a, b, c : ");
scanf("%d %d %d", &a, &b, &c);
(a==0)?(
(b==0)?(
(c==0) ? printf("Undefined!!n") : printf("Impossible!!n")
): (
printf("-c/b!!n")
)
): (
(b*b-4*a*c>=0) ? printf("Possible!!n") : printf("Impossible!!n")
);
}switch~case문으로 작성
#include<stdio.h>
void main(){
int a, b, c;
printf("Enter a, b, c : ");
scanf("%d %d %d", &a, &b, &c);
switch(a){
case 0 :
switch(b){
case 0 :
switch(c){
case 0 :
printf("Undefined!!n");
break;
case !0 :
printf("Impossible!!n");
break;
}
break;
case !0 :
printf("-c/b!!n");
break;
}
break;
case !0 :
switch((b*b-4*a*b>>31)&1){
case 0:
printf("Possible!!n");
break;
case !0 :
printf("Impossible!!n");
break;
}
break;
}
}피보나치수열
#include<stdio.h>
void main(){
int fib0=0, fib1=1;
int fib_n, n, i;
printf("Enter a Number : ");
scanf("%d", &n);
for(i=0; i<n; i++){
fib_n = fib0 + fib1;
fib0 = fib1;
fib1 = fib_n;
printf("%2d. %dn", i, fib_n);
}
}재귀함수와 반복함수로 작성^^
#include <stdio.h>
/* 재귀함수(recursive) */
int recur_fibonacci(int n){
/* f(n) = f(n-2) + f(n-1) 이고 단, f(1)이하가 되면 초기값 1을 리턴 */
if(n<2) return 1;
else return recur_fibonacci(n-2) + recur_fibonacci(n-1);
}
/* 반복함수(iterative) */
int iter_fibonacci(int n){
int f0=0; /* f(1)의 초기화된 변수 */
int f1=1; /* f(2)의 초기화된 변수 */
int fn; /* f(3)부터 저장되는 변수 f(3) = f(1) + f(2) ... */
/* f(n) = f(n-2) + f(n-1) */
/* n-- 가 음수가 될 때 까지(n번째를 구하기 위해 n번만큼 f(1)~f(n) 까지 루프..) */
while(n-->0){
fn = f0 + f1;
f0 = f1;
f1 = fn;
}
return fn;
}
int main(){
int n; /* n번째의 피보나치수열 숫자 */
int r; /* 재귀함수 결과 */
int i; /* 반복함수 결과 */
/* 피보나치 수열의 n번째를 구할것인지 입력 */
printf("Enter a Number : ");
scanf("%d",&n);
/* 재귀함수 실행 */
r = recur_fibonacci(n);
/* 반복함수 실행 */
i = iter_fibonacci(n);
/* 결과 출력 */
printf("Recursive %dth fibonacci Number : %d
", n, r);
printf("Iterative %dth fibonacci Number : %d
", n, i);
return 0;
}| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|---|
| 985 | Develop | [c] 단기과정[01/06] sizeof, 실수표현, 메모리, 연산자 | hooni | 2003.04.23 | 8456 |
| » | Develop | [c] 단기과정[01/07] 제어문, 피보나치수열 | hooni | 2003.04.23 | 8615 |
| 983 | Develop | [c] 단기과정[01/08] 배열, 포인터 | hooni | 2003.04.23 | 8428 |
| 982 | Develop | [c] 단기과정[01/08] (다차원 + 배열)포인터, void 포인터 | hooni | 2003.04.23 | 9283 |
| 981 | Develop |
[c] 단기과정[01/08] 과제.. 파스칼 삼각형
|
hooni | 2003.04.23 | 8833 |
| 980 | Develop |
[c] 단기과정[01/10] 과제.. swap(any data, ..)
|
hooni | 2003.04.23 | 8510 |
| 979 | Develop |
[c] 단기과정[01/14] 파일 입출력
|
hooni | 2003.04.23 | 7983 |
| 978 | Develop |
[c] 단기과정[01/14] 피보나치, 파스칼.. 파일입출력
|
hooni | 2003.04.23 | 8216 |
| 977 | Develop |
[c] 단기과정[01/15] 피보나치, 파스칼.. 링크리스트
|
hooni | 2003.04.23 | 8145 |
| 976 | Develop |
[c] 단기과정[01/17] 후위연산 스택 계산기..
|
hooni | 2003.04.23 | 8415 |
| 975 | Develop | [c] 단기과정[01/24] 정렬 알고리즘 | hooni | 2003.04.23 | 8730 |
| 974 | Develop | [js] 새로고침(refresh)방법과 다른 페이지 바꾸기.. | hooni | 2003.04.23 | 7690 |