05 Function 03 Recursion
05 Function 03 Recursion
01
#include<stdio.h> Bila N = 5,
main() maka : N! =
{ int I, hasil, N; 5 * 4 * 3 * 2 * 1 = 120
scanf(“%i”, &N);
for( I=N; I >= 1; I--)
{ hasil = hasil * I; }
printf(“%i”, hasil);
}
atau :
#include<stdio.h> Bila N = 5,
main() maka : N! =
{ int I, hasil, N; 1 * 2 * 3 * 4 * 5 = 120
scanf(“%i”, &N);
hasil = 1;
for( I=1; I <= N; I++)
{ hasil = hasil * I; }
printf(“%i”, hasil);
}
14.02
B. Menggunakan Fungsi
Cara-1
#include<stdio.h>
void HITUNG(void);
main()
{
HITUNG();
}
void HITUNG(void)
{ int I, hasil, N;
scanf(“%i”, &N);
for( I=N; I >= 1; I--)
{ hasil = hasil * I; }
printf(“%i”, hasil);
}
Cara-2
#include<stdio.h>
void HITUNG(int X);
main()
{
int N;
scanf(%i”, &N);
HITUNG(N);
}
void HITUNG(int X)
{ int I, hasil;
hasil = 1;
for( I=X; I >= 1; I--)
{ hasil = hasil * I; }
printf(“%i”, hasil);
}
14.03
Cara-3
#include<stdio.h>
void HITUNG(int X);
int hasil;
main()
{ int N;
scanf(%i”, &N);
HITUNG(N);
printf(“%i”, hasil);
}
void HITUNG(int X)
{ int I;
hasil = 1;
for( I=X; I >= 1; I--)
{ hasil = hasil * I; }
}
Cara-4
#include<stdio.h>
void HITUNG(int X);
main()
{ int FACT, N;
scanf(%i”, &N);
FACT = HITUNG(N);
printf(“%i”, FACT);
}
void HITUNG(int X)
{ int I, hasil;
hasil = 1;
for( I=X; I >= 1; I--)
{ hasil = hasil * I; }
return(hasil);
}
14.04
Cara-5
#include<stdio.h>
void HITUNG(int X);
main()
{ int N;
scanf(%i”, &N);
printf(“%i”, HITUNG(N));
}
void HITUNG(int X)
{ int I, hasil;
hasil = 1;
for( I=X; I >= 1; I--)
{ hasil = hasil * I; }
return(hasil);
}
Cara-1
#include<stdio.h>
void HITUNG(int n);
main()
{ int N;
scanf(%i”, &N);
printf(“%i”, HITUNG(N));
}
void HITUNG(int n)
{ int x,y;
if(n == 0)
return(1);
x = n - 1;
y = HITUNG(x);
return(n * y);
}
14.05
HITUNG(n) dimana n = 5
-
-
call HITUNG(n) dimana n = 4
- -
- -
- call HITUNG(n) dimana n = 3
- - -
- - -
- - call HITUNG(n) dimana n = 2
- - - -
- - - -
- - - call HITUNG(n) dimana n=1
- - - - -
- - - - -
- - - - call HITUNG(n)
- - - - - - dimana n = 0
- - - - - -
- - - - -
- -
- - - return 1
- -
- - - - -
- - - - return n * y
- - - - 1 * 1 = 1
- - - -
- - - return n * y
- - - 2 * 1 = 2
- - return n * y
- - 3 * 2 = 6
- -
- return n * y
- 4 * 6 = 24
-
return n * y
5 * 24 = 120
14.06
Program Utama
FungsiHITUNG( )
HITUNG(N) dimana N=5, Nilai N diterima oleh n
5 5 4 Y = HITUNG(x)
N n x
Cetak :
HITUNG(x) dimana x=4 Nilai 4 diterima oleh n
HITUNG(N)
4 3 Y = HITUNG(x)
n x
HITUNG(x) dimana x = 3
3 2 Y = HITUNG(x)
n x
HITUNG(x) dimana x=2
2 1 Y = HITUNG(x)
n x
#include<stdio.h>
int HITUNG(int n);
main()
{ int N;
scanf("%i", &N);
printf("\n%i", HITUNG(N));
}
int HITUNG(int n)
{ int x, y;
if(n == 0)
return(1);
x = n - 1;
y = HITUNG(x); Sebelum keluar
dari fungsi HITUNG
printf("\n%i", n*y);
terlebih dahulu
return(n * y); mencetak nilai
} yang di return
yaitu n*y
1
2
6 Dicetak dalam fungsi HITUNG
24 dengan: printf(“\n”, n*y);
120
120 Dicetak dalam
program Utama dengan :
printf(“\n”, HITUNG(N);
Perhatikan kembali : 14.08
#include<stdio.h>
int HITUNG(int n);
main()
{ int N;
scanf("%i", &N);
printf("\n%i", HITUNG(N));
}
int HITUNG(int n)
{ int x, y;
if(n == 0)
return(1);
x = n - 1;
y = HITUNG(x);
return(n * y);
}
Bandingkan dengan :
Cara-2 Cara-3
#include<stdio.h> #include<stdio.h>
int HITUNG(int n); int HITUNG(int n);
main() main()
{ int N; { int N;
scanf("%i", &N); scanf("%i", &N);
printf("\n%i", printf("\n%i", HITUNG(N));
HITUNG(N));
}
} int HITUNG(int n)
int HITUNG(int n) { int y;
{ int x, y; if(n == 0)
if(n == 0) return(1);
return(1); y = HITUNG(n-1);
else return(n * y);
{ x = n - 1; }
y = HITUNG(x);
return(n * y);
}
14.09
Cara-4
#include<stdio.h>
int HITUNG(int n);
main()
{ int N;
scanf("%i", &N);
printf("\n%i", HITUNG(N));
}
int HITUNG(int n)
{ if(n == 0)
return(1);
return(n * HITUNG(n-1);
}
Cara-5
#include<stdio.h>
int HITUNG(int n);
main()
{ int N;
scanf("%i", &N);
printf("\n%i", HITUNG(N));
}
int HITUNG(int n)
{ return(n == 0 ? 1 : n * HITUNG(n-1) ); }
14.10
Input :Jakarta
Tercetak : atrakaJ atau : a t r a k a J
Cara-1
#include<stdio.h>
#include<conio.h>
void KETIK(char C);
main()
{ char X;
X = getche();
KETIK(X);
printf("% c", X);
}
void KETIK(char C)
{
C = getche();
if(C == '\r')
{ printf("\n");
return;
}
KETIK(C);
printf("%c ", C);
return;
}
14.11
Misal yang diketik : ABCD<Enter>
Dalam Program Utama
KETIK(C)
Dalam fungsi KETIK( )
printf(“%c”, C);
tercetak : D
return
printf(“%c”, C);
tercetak : C
return
printf(“%c”,C);
tercetak : B
return
printf(“%c”, X);
tercetak : A
Maka tercetak : D C B A
14.10
14.10
14.10