Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- // 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
- /*
- proizvod=1;
- for(i=1;i<=n;i++){
- proizvod=proizvod*i;
- }
- */
- int faktoriel(int n){
- if(n==1){
- return 1;
- }else{
- return n*faktoriel(n-1);
- }
- }
- // sumaCifri(2534) 1) 4 + sumaCifri(253)
- // sumaCifri(253) 2) 3 + sumaCifri(25)
- // sumaCifri(25) 3) 5 + sumaCifri(2)
- // sumaCifri(2) 4) 2 + sumaCifri(0)
- // sumaCifri(0) 5) sumaCifri(0)=0
- // sumaCifri(2) 6) 2+0=2
- // sumaCifri(25) 7) 5+2=7
- // sumaCifri(253) 8) 3+7=10
- // sumaCifri(2534) 9) 4+10=14
- 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 * sumaCifri(n/10);
- }
- }
- int brojCifri(int n){
- if(n==0){
- return 0;
- }else{
- return 1+brojCifri(n/10);
- }
- }
- int sumaNeparni(int n){
- if(n==0){
- return 0;
- }else{
- if((n%10)%2==1){
- return n%10+sumaNeparni(n/10);
- }else{
- return sumaNeparni(n/10);
- }
- }
- }
- // so 2 promenlivi - od kraj do pocetok
- int brojNeparniVoNiza(int niza[],int n){
- if(n==0){
- return 0;
- }else{
- // n=2 -> niza[0] niza[1]
- // n=2 1) niza[1]%2==1
- // n=1 2) niza[0]%2==1
- // n=0 3) niza[-1]%2==1
- // n=-1 END
- if(niza[n-1]%2==1){
- return 1+brojNeparniVoNiza(niza,n-1);
- }else{
- return brojNeparniVoNiza(niza,n-1);
- }
- }
- }
- // so 3 promenlivi - od pocetok do kraj
- int brojNeparniVoNiza(int niza[],int n,int i){
- if(i==n){
- return 0;
- }else{
- if(niza[i]%2==1){
- return 1+brojNeparniVoNiza(niza,n,i+1);
- }else{
- return brojNeparniVoNiza(niza,n,i+1);
- }
- }
- }
- void printNiza(int niza[],int n,int i){
- if(i==n){
- printf("\n");
- return;
- }else{
- printf("%d ",niza[i]);
- return printNiza(niza,n,i+1);
- }
- }
- void printNizaNaopaku(int niza[],int n){
- if(n==0){
- printf("\n");
- return;
- }else{
- printf("%d ",niza[n-1]);
- return printNizaNaopaku(niza,n-1);
- }
- }
- int kolkuPatiX(int niza[],int n,int x){
- if(n==0){
- return 0;
- }else{
- if(niza[n-1]==x){
- return 1+kolkuPatiX(niza,n-1,x);
- }else{
- return kolkuPatiX(niza,n-1,x);
- }
- }
- }
- // n=16253
- // sumata=53+25+62+16
- int posledovatelniDva(int n){
- if(n<10){
- return 0;
- }else{
- return n%100+posledovatelniDva(n/10);
- }
- }
- // n=253245
- // x=25 -> 2
- int kolkuCifriX(int n,int x){
- if(n==0){
- return 0;
- }else{
- if(n%10==x){
- return 1+kolkuCifriX(n/10,x);
- }else{
- return kolkuCifriX(n/10,x);
- }
- }
- }
- // x=2 brojacOdX(x)=10
- // x=25 brojacOdX(x)=100
- // x=256 brojacOdX(x)=1000
- /*
- proizvod=1;
- while(x>0){
- x=x/10;
- proizvod=proizvod*10;
- }
- */
- // brojacOdX(25) 1) 10*brojacOdX(2)
- // brojacOdX(2) 2) 10*brojacOdX(0)
- // brojacOdX(0)=1
- int brojacOdX(int x){
- if(x==0){
- return 1;
- }else{
- return 10*brojacOdX(x/10);
- }
- }
- // kolku pati X vo N SO POVTORUVANJE
- /*
- int kolkuPatiX(int n,int x){
- if(n==0){
- return 0;
- }else{
- // x=25 n%100
- // x=256 n%1000
- if(n%brojacOdX(x)==x){
- return 1+kolkuPatiX(n/10,x);
- }else{
- return kolkuPatiX(n/10,x);
- }
- }
- }
- */
- // kolku pati X vo N BEZ POVTORUVANJE
- int kolkuPatiX(int n,int x){
- if(n==0){
- return 0;
- }else{
- // x=25 n%100
- // x=256 n%1000
- // 555
- if(n%brojacOdX(x)==x){
- return 1+kolkuPatiX(n/brojacOdX(x),x);
- }else{
- return kolkuPatiX(n/10,x);
- }
- }
- }
- int main()
- {
- int n,i,x;
- scanf("%d%d",&n,&x);
- printf("Brojot %d se sodrzhi %d pat/i vo %d\n",x,kolkuPatiX(n,x),n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment