Zadanie 1. .Proszę napisać funkcję rekurencyjnie obliczającą silnię.
#include <stdio.h>
//***************************
#include <conio.h> int main(){
int silnia(int n){
int n;
int sn;
printf("?n="); if(n>0) sn=n*silnia(n-1); scanf("%d",&n); else sn=1;
printf("%d!=%d",n,silnia(n)); return sn;
return 0;
}
}
#include <stdio.h> z--;
#include <conio.h> for(i=0;i<z;i++)
int z=0;
printf(" ");
//*********************************
printf("2. n=%d \tn!=%d\n",n,sn); int silnia(int n){
return sn;
int sn,i;
}
for(i=0;i<z;i++)
//*********************************
printf(" ");
int main(){
z++;
int n;
printf("1. n=%d \tn!=%d\n",n,sn); printf("?n="); if(n>0)
scanf("%d",&n); sn=n*silnia(n-1);
printf("%d!=%d",n,silnia(n)); else
return 0;
sn=1;
}
Zadanie 2. Proszę napisać funkcję rekurencyjnie obliczjącą sumę ciągu arytmetycznego.
#include <stdio.h> int suma(int a, int r, int n){
#include <conio.h> int sn,i;
void koniec();
if(n>1)
void wczytaj(int *, int *, int*); sn=a+(n-1)*r +suma(a,r,n-1); int suma(int, int , int); else
//**********************************
sn=a;
void wczytaj(int *a, int *r, int *n){
return sn;
printf("?a1=");
}
scanf("%d",a);
//**********************************
printf("?r="); int main(){
scanf("%d",r); int a,r,n;
printf("?n="); wczytaj(&a,&r,&n); scanf("%d",n); printf("a1=%d\tr=%d\t
}
S(%d)=%d",a,r,n,suma(a,r,n));
//**********************************
return 0;
}
#include <stdio.h> sn=a+(n-1)*r +suma(a,r,n-1);
#include <conio.h> else
int z=0;
sn=a;
//**********************************
z--;
void koniec();
for(i=0;i<z;i++)
void wczytaj(int *, int *, int*); printf(" ");
int suma(int, int , int); printf("2.
//**********************************
a=%d\tr=%d\tn=%d\tS=%d\n",a,r,n,sn); void wczytaj(int *a, int *r, int *n){
return sn;
printf("?a1=");
}
scanf("%d",a);
//**********************************
printf("?r="); void koniec(){
scanf("%d",r); printf("\n\n\nT H E E N D\n\n"); printf("?n="); fflush(stdin);
scanf("%d",n); getch();
}
}
//**********************************
//**********************************
int suma(int a, int r, int n){
int main(){
int sn,i;
int a,r,n;
for(i=0;i<z;i++)
wczytaj(&a,&r,&n); printf(" ");
printf("a1=%d\tr=%d\t z++;
S(%d)=%d",a,r,n,suma(a,r,n)); printf("1.
koniec();
a=%d\tr=%d\tn=%d\tS=%d\n",a,r,n,sn); return 0;
if(n>1)
}
Zadanie 3. Proszę napisać funkcję rekurencyjnie obliczającą n-ty wyraz ciągu Fibbonaciego
#include <stdio.h> z--;
#include <conio.h> for(i=0;i<z;i++)
int z=0;
printf(" ");
//**********************************
printf("2. f(%d)=%d\n",n,sn); int fib(int n){
return sn;
int sn,i;
}
for(i=0;i<z;i++)
//**********************************
printf(" ");
int main(){
z++;
int n;
printf("1. f(%d)=%d\n",n,sn); printf("?n="); if(n>1)
scanf("%d",&n); sn=fib(n-1)+fib(n-2);
printf("f(%d)=%d",n,fib(n)); else
return 0;
sn=1;
}
Zadanie 4. Proszę napisać funkcję rekurencyjnie drukującą elementy ciągu Fibbonaciego na literkach czyli :
a
b
ab
bab
abbab
#include <stdio.h>
//**********************************
#include <conio.h> int main(){
//**********************************
int n,i;
void fib(int n){
printf("?n="); if(n>1) {
scanf("%d",&n); fib(n-1);
for(i=0;i<=n;i++)
fib(n-2);
{
}
fib(i);
if(n==1)
printf("\n");
printf("b");
}
if(n==0)
return 0;
printf("a");
}
}
Zadanie 5. Proszę napisać funkcję rekurencyjnie drukującą linię gwiazdek.
#include <stdio.h> int main(){
#include <conio.h> int n,i;
//**********************************
printf("?n="); void linia(int n){
scanf("%d",&n); if(n>=1) {
for(i=0;i<=n;i++) {
printf("*");
linia(i);
linia(n-1);
printf("\n");
}
}
}
return 0;
//**********************************
}
Zadanie 6. Proszę napisać funkcję rekurencyjnie drukującą trójkąt
****
*****
*
void trojkat(int n){
int main(){
if(n>=1) {
int n,i;
linia(n);
printf("?n="); printf("\n");
scanf("%d",&n); trojkat(n-1);
trojkat(n);
}
return 0;
}
}
Zadanie 7. Proszę napisać funkcję rekurencyjnie wypełniającą tablicę dwuwymiarową
#include <stdio.h> void druk(int t[r1][r2]){
#include <conio.h> int i,j;
#define r1 10
for(i=0;i<r1;i++) {
#define r2 10
for(j=0;j<r2;j++)
void wypelnij(int t[r1][r2], int n); printf("%d ",t[i][j]); void druk(int t[r1][r2]); printf("\n");
void wypelnij(int t[r1][r2], int n){
}
int i;
}
if(n>=0) {
******************************
for(i=0;i<n;i++) {int main()
t[n-1][i]=n-1;
{
t[i][n-1]=n-1;
int t[r1][r2];
}
int i,j=r1;
wypelnij(t, n-1);
wypelnij(t,j);
}
druk(t);
}
return 0;
}
Zadanie 8.
Profesor Q bardzo chaotycznie chodzi po schodach i czasem pokonuje dwa schodki, a czasem tylko jeden. Na ile sposobów profesor Q może wejść do swojego gabinetu, mieszczącego się na półpiętrze, które dzieli od parteru n stopni ?