Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // napishi funkcija
- // funkcija(int niza[],int n)
- // n=5 -> 5*4*3*2*1
- // faktoriel (5) 1) n=5 return 5 * faktoriel(4) -> 5 * (4 * 3 * 2 * 1 )
- // faktoriel (4) 2) n=4 return 4 * faktoriel(3) -> 4 * (3 * 2 * 1)
- // faktoriel (3) 3) n=3 return 3 * faktoriel(2) -> 3 * (2 * 1)
- // faktoriel (2) 4) n=2 return 2 * faktoriel(1) -> 2 * 1
- // faktoriel (1) 5) n=1 return 1
- int faktoriel(int n){
- if(n==1){
- return 1;
- }else{
- return n*faktoriel(n-1);
- }
- }
- // n=235 -> 2+3+5+0
- // sumaCifri(235) 1) 5 + sumaCifri(23) -> sumaCifri(235) = 5+5
- // sumaCifri(23) 2) 3 + sumaCifri(2) -> sumaCifri(23) = 3+2
- // sumaCifri(2) 3) 2 + sumaCifri(0) -> sumaCifri(2) = 2+0
- // sumaCifri(0) 4) 0
- int sumaCifri(int n){
- if(n==0){
- return 0;
- }else{
- return n%10 + sumaCifri(n/10);
- }
- }
- int proizvodCifri(int n){
- if(n==0){
- return 1;
- }else{
- return n%10 * proizvodCifri(n/10);
- }
- }
- // brojCifri(235) 1) 1+brojCifri(23)
- // brojCifri(23) 2) 1+brojCifri(2)
- // brojCifri(2) 3) 1+brojCifri(0)
- // brojCifri(0) 4) brojCifri(0)=0 i posle zamenuvame nagore
- int brojCifri(int n){
- if(n==0){
- return 0;
- }else{
- return 1+brojCifri(n/10);
- }
- }
- // n=235 -> 3+5
- // sumaNeparni(235) 1) 5 + sumaNeparni(23) -> 5 + 3 = 8
- // sumaNeparni(23) 2) 3 + sumaNeparni(2) -> sumaNeparni(23)=3
- // sumaNeparni(2) 3) 0
- // sumaNeparni(0) 4) sumaNeparni(0)=0
- int sumaNeparni(int n){
- if(n==0){
- return 0;
- }else{
- if(n%10%2==0){
- return sumaNeparni(n/10);
- }else{
- return n%10+sumaNeparni(n/10);
- }
- }
- }
- // niza=5 -> niza[4],niza[3]...niza[0]
- void printNaopaku(int niza[],int n){
- if(n==0){
- printf("%d ",niza[n]);
- }else{
- printf("%d ",niza[n]); // niza[2]
- return printNaopaku(niza,n-1);
- }
- }
- // niza[3]={2,3,4}
- // kolkuParni(niza,n,0) 1) 1+kolkuParni(niza,n,1)
- // kolkuParni(niza,n,1) 2) kolkuParni(niza,n,2)
- // kolkuParni(niza,n,2) 3) 1+kolkuParni(niza,n,3)
- // kolkuParni(niza,n,3) 4) kolkuParni(niza,n,3)=0
- // proagjanje niza so 3 promenlivi
- int kolkuParni(int niza[],int n,int i){
- if(i==n){
- return 0;
- }else{
- if(niza[i]%2==0){
- return 1+kolkuParni(niza,n,i+1);
- }else{
- return kolkuParni(niza,n,i+1);
- }
- }
- }
- // proagjanje niza so 2 promenlivi
- int kolkuParni(int niza[],int n){
- if(n==-1){
- return 0;
- }else{
- if(niza[n]%2==0){
- return 1+kolkuParni(niza,n-1);
- }else{
- return kolkuParni(niza,n-1);
- }
- }
- }
- // niza[5] n=5 -> niza[5]='\0' posleden chlen e niza[4] t.e. 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=314145 -> n%100==x ako e, togash n=n/10
- // x=14
- // 10*10=100
- // n=314145 -> n%1000==x
- // x=141
- // 10*10*10=1000
- // cifriX(14) 1) 10*10
- // cifriX(1) 2) 10
- // cifriX(0) 3) 1
- int cifriX(int x){
- if(x==0){
- return 1;
- }else{
- return 10*cifriX(x/10);
- }
- }
- // so povtoruvanje
- /*
- int kolkuPatiX(int n,int x){
- if(n==0){
- return 0;
- }else{
- if(n%cifriX(x)==x){
- return 1+kolkuPatiX(n/10,x);
- }else{
- return kolkuPatiX(n/10,x);
- }
- }
- }
- */
- // bez povtoruvanje
- int kolkuPatiX(int n,int x){
- if(n==0){
- return 0;
- }else{
- if(n%cifriX(x)==x){
- return 1+kolkuPatiX(n/cifriX(x),x);
- }else{
- return kolkuPatiX(n/10,x);
- }
- }
- }
- int main(){
- int n,i,x;
- scanf("%d%d",&n,&x);
- printf("Brojot %d go ima %d pati vo brojot %d\n",x,kolkuPatiX(n,x),n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment