본문내용
자료구조
//p64 14번 문제
#include
int sum(int n)
{
if( n==1 ) return (1);
else return n+sum(n-1);
}
void main()
{
int n;
printf("N 숫자를 입력해 주세요 : ");
scanf("%d", &n);
printf("1 - N 까지의 합은 : %d 입니다.\n", sum(n));
}
//p64 15번 문제
#include
float sum(float n)
{
if( n==1 ) return 1.0;
else return (1.0/n)+sum(n-1);
}
void main()
{
float n;
printf("N 숫자를 입력해 주세요 : ");
scanf("%f", &n);
printf("1 - 1/N 까지의 합은 : %.2f 입니다.\n", sum(n));
}
// P.64 쪽 16번문제
#include
int fib(int n)
{
printf("fib(%d) is called\n",n);
if( n==0) return 0;
if( n==1) return 1;
return (fib(n-1) + fib(n-2));
}
void main()
{
int n;
scanf("%d", &n);
fib(n);
}
//p64 17번 문제
#include
void main()
{
int n,i=0;
int sum = 0;
printf("N 숫자를 입력해 주세요 : ");
scanf("%d",&n);
/*int sum(int n)
{
if( n == 1 ) return 1;
else return (n + sum(n-1));
}*/
for( i=1; i<=n; i++){
sum += i;}
printf("1 - N 까지의 합은 : %d 입니다.\n", sum);
}
//p64 18번 문제
int bin(int n, int k)
{
if( k==0 || k==n )
return 1;
else
return bin(n-1,k-1)+bin(n-1,k);
}
void main()
{
int n,k;
printf("nCk 숫자를 입력해 주세요 : ");
scanf("%d %d", &n, &k);
printf("nCk : %d 입니다.\n", bin(n,k));
}
//p64 19번 문제(a),(b)
#include
int A(int m, int n){
if(m==0 && n==n){ return (n+1);
}
if(m == m && n==0){
return (A(m-1,1));
}
else if (m==m && n==n){
return (A(m-1,A(m,(n-1))));
}
}
void main(){
int x=0;
int y=0;
x = A(3,2);
y = A(2,3);
printf("A(3,2) = %d, A(2,3) = %d\n",x,y);
}
//p64 19번 문제(c)
#include
int A(int m, int n){
while (m != 0){
if (n == 0)
n = 1;
else
n = A(m, n-1);
m = m - 1;
}
return n+1;
}
void main(){
int x=0;
int y=0;
x = A(3,2);
y = A(2,3);
printf("A(3,2) = %d, A(2,3) = %d\n",x,y);
}
// 부록 하노이탑 문제
#include
int hanoi(int n,char A, char B, char C){
if(n!=1){
hanoi(n-1,A,C,B);
printf("%c > %c \n" ,A,C);
hanoi(n-1,B,A,C);}
else{ printf("%c > %c \n",A,C);
}
}
void main(){
int x;
printf(" 하이노탑 층수를 입력해 주세요:");
scanf("%d", &x);
hanoi(x,'A','B','C');
}
//p64 14번 문제
#include
int sum(int n)
{
if( n==1 ) return (1);
else return n+sum(n-1);
}
void main()
{
int n;
printf("N 숫자를 입력해 주세요 : ");
scanf("%d", &n);
printf("1 - N 까지의 합은 : %d 입니다.\n", sum(n));
}
//p64 15번 문제
#include
float sum(float n)
{
if( n==1 ) return 1.0;
else return (1.0/n)+sum(n-1);
}
void main()
{
float n;
printf("N 숫자를 입력해 주세요 : ");
scanf("%f", &n);
printf("1 - 1/N 까지의 합은 : %.2f 입니다.\n", sum(n));
}
// P.64 쪽 16번문제
#include
int fib(int n)
{
printf("fib(%d) is called\n",n);
if( n==0) return 0;
if( n==1) return 1;
return (fib(n-1) + fib(n-2));
}
void main()
{
int n;
scanf("%d", &n);
fib(n);
}
//p64 17번 문제
#include
void main()
{
int n,i=0;
int sum = 0;
printf("N 숫자를 입력해 주세요 : ");
scanf("%d",&n);
/*int sum(int n)
{
if( n == 1 ) return 1;
else return (n + sum(n-1));
}*/
for( i=1; i<=n; i++){
sum += i;}
printf("1 - N 까지의 합은 : %d 입니다.\n", sum);
}
//p64 18번 문제
int bin(int n, int k)
{
if( k==0 || k==n )
return 1;
else
return bin(n-1,k-1)+bin(n-1,k);
}
void main()
{
int n,k;
printf("nCk 숫자를 입력해 주세요 : ");
scanf("%d %d", &n, &k);
printf("nCk : %d 입니다.\n", bin(n,k));
}
//p64 19번 문제(a),(b)
#include
int A(int m, int n){
if(m==0 && n==n){ return (n+1);
}
if(m == m && n==0){
return (A(m-1,1));
}
else if (m==m && n==n){
return (A(m-1,A(m,(n-1))));
}
}
void main(){
int x=0;
int y=0;
x = A(3,2);
y = A(2,3);
printf("A(3,2) = %d, A(2,3) = %d\n",x,y);
}
//p64 19번 문제(c)
#include
int A(int m, int n){
while (m != 0){
if (n == 0)
n = 1;
else
n = A(m, n-1);
m = m - 1;
}
return n+1;
}
void main(){
int x=0;
int y=0;
x = A(3,2);
y = A(2,3);
printf("A(3,2) = %d, A(2,3) = %d\n",x,y);
}
// 부록 하노이탑 문제
#include
int hanoi(int n,char A, char B, char C){
if(n!=1){
hanoi(n-1,A,C,B);
printf("%c > %c \n" ,A,C);
hanoi(n-1,B,A,C);}
else{ printf("%c > %c \n",A,C);
}
}
void main(){
int x;
printf(" 하이노탑 층수를 입력해 주세요:");
scanf("%d", &x);
hanoi(x,'A','B','C');
}
소개글