Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 5*4*3*2*1 -> 5!
- /*
- int faktoriel(int n){
- int i,proizvod=1;
- for(i=1;i<=n;i++){
- // i=1 -> proizvod=1
- // i=2 -> 2
- // i=3 -> 6
- // i=n-1
- proizvod=proizvod*i;
- }
- return proizvod;
- }
- */
- int faktoriel(int n){
- if(n==1){
- return 1;
- }else{
- return n*faktoriel(n-1);
- }
- }
- // faktoriel(5) 1) 5 * faktoriel(4)
- // faktoriel(4) 2) 4 * faktoriel(3)
- // faktoriel(3) 3) 3 * faktoriel(2)
- // faktoriel(2) 4) 2 * faktoriel(1)
- // faktoriel(1) 5) faktoriel(1)=1
- // faktoriel(2) = 2 * 1 = 2
- // faktoriel(3) = 3 * 2 = 6
- // faktoriel(4) = 4 * 6 = 24
- // faktoriel(5) = 5 * 24 = 120
- // brojac n=n/10
- int brojCifri(int n){
- if(n==0){
- return 0;
- }else{
- return 1+brojCifri(n/10);
- }
- }
- // brojCifri(2534) 1) 1+brojCifri(253)
- // brojCifri(253) 2) 1+brojCifri(25)
- // brojCifri(25) 3) 1+brojCifri(2)
- // brojCifri(2) 4) 1+brojCifri(0)
- // brojCifri(0) 5) brojCifri(0)=0
- // brojCifri(2)=1+brojCifri(0)=1+0=1
- // brojCifri(25)=1+1=2
- // brojCifri(253)=1+2=3
- // brojCifri(2534)=1+3=4
- // 2534 -> 4 + sumaCifri(253)
- // 253 -> 3 + sumaCifri(25)
- // 25 -> 5 + sumaCifri(2)
- // 2 -> 2 + sumaCifri(0)
- int sumaCifri(int n){
- if(n==0){
- return 0;
- }else{
- return n%10 + sumaCifri(n/10);
- }
- }
- // 2534 -> 5+3
- int sumaNeparniCifri(int n){
- if(n==0){
- return 0;
- }else{
- // 2534
- if((n%10)%2==1){
- return n%10 + sumaNeparniCifri(n/10);
- }else{
- return sumaNeparniCifri(n/10);
- }
- }
- }
- int brojNeparniCifri(int n){
- if(n==0){
- return 0;
- }else{
- // 2534
- if((n%10)%2==1){
- return 1 + brojNeparniCifri(n/10);
- }else{
- return brojNeparniCifri(n/10);
- }
- }
- }
- // so dve promenlivi - od kraj do pocetok
- // n=5 -> niza[5]={1,2,3,4,5} niza[4]=5
- int neparniNiza(int niza[],int n){
- if(n==-1){
- // niza[0]
- return 0;
- }else{
- if(niza[n]%2==0){
- return neparniNiza(niza,n-1);
- }else{
- return 1 + neparniNiza(niza,n-1);
- }
- }
- }
- // so tri promenlivi - pocnuvame od pocetok ideme do n preku i
- int neparniNiza(int niza[],int n,int i){
- if(i==n){
- return 0;
- }else{
- if(niza[i]%2==0){
- return neparniNiza(niza,n,i+1);
- }else{
- return 1 + neparniNiza(niza,n,i+1);
- }
- }
- }
- void printNaopaku(int niza[],int n){
- if(n==0){
- printf("\n");
- }else{
- printf("%d ",niza[n-1]);
- return printNaopaku(niza,n-1);
- }
- }
- int kolkuPatiX(int niza[],int n,int x){
- if(n==-1){
- return 0;
- }else{
- if(niza[n]==x){
- return 1+kolkuPatiX(niza,n-1,x);
- }else{
- return kolkuPatiX(niza,n-1,x);
- }
- }
- }
- // n=2534 x=2 -> 2
- int kolkuPatiX(int n,int x){
- if(n==0){
- return 0;
- }else{
- if(n%10==x){
- return 1+kolkuPatiX(n/10,x);
- }else{
- return kolkuPatiX(n/10,x);
- }
- }
- }
- // n=253224 x=2 -> 2+2+2=6
- int sumaX(int n,int x){
- if(n==0){
- return 0;
- }else{
- if(n%10==x){
- return x+sumaX(n/10,x);
- }else{
- return sumaX(n/10,x);
- }
- }
- }
- /*
- proizvod=1;
- while(x>0){
- proizvod=proizvod*10;
- x=x/10;
- }
- */
- int cifriX(int x){
- if(x==0){
- return 1;
- }else{
- return 10*cifriX(x/10);
- }
- }
- // proizvod=1000
- // n=25425325 x=25 -> 2 n%100
- // n=255553 x=555 -> 2 n%1000
- // x=1234 -> n%10000
- // so povtoruvanje na brojot
- /*
- int kolkuPatiBrojX(int n,int x){
- if(n==0){
- return 0;
- }else{
- if(n%cifriX(x)==x){
- // ima povtoruvanje znaci kratime samo 1 cifra
- return 1+kolkuPatiBrojX(n/10,x);
- }else{
- return kolkuPatiBrojX(n/10,x);
- }
- }
- }
- */
- // bez povtoruvanje
- int kolkuPatiBrojX(int n,int x){
- if(n==0){
- return 0;
- }else{
- if(n%cifriX(x)==x){
- // bez povtoruvanje na broj
- return 1+kolkuPatiBrojX(n/cifriX(x),x);
- }else{
- return kolkuPatiBrojX(n/10,x);
- }
- }
- }
- // 254 -> 452
- // 1) 4
- // 2) 45
- // 3) 452
- int obraten(int x){
- if(x==0){
- return 0;
- }else{
- return x%10 + 10*obraten(x/10);
- }
- }
- // 442 -> 1
- // 123
- // 12345 -> 2
- // 1234
- int kolkuParniNaParniPozicii(int x){
- if(x<10){
- return 0;
- }else{
- if((x/10%10)%2==0){
- return 1+kolkuParniNaParniPozicii(x/100);
- }else{
- return kolkuParniNaParniPozicii(x/100);
- }
- }
- }
- int main(){
- int n,i,x;
- scanf("%d",&x);
- printf("Brojot %d obratno zapishan e %d\n",x,kolkuParniNaParniPozicii(x));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement