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;
}