sexta-feira, 23 de outubro de 2009

contar letras

int conta(char *v,int i, int j, char letra){
 if( i > j ) return 0;
 else{
    if(v[ i ]== letra)
      return 1+conta( v , i+1 ,  j  , letra);
      else
        return conta( v,i+1 ,j, letra);
         }
 }
  

inverter string

void inv( char *v,int i, int j){
 if( i < j ){
   char aux=v[ i ];
        v[ i ]=v[ j ];
        v[ j ]=aux;
        inv(v, i+1, j-1);     
        
         }
 } 
     

palindromo

int palindromo (char * v, int i, int j ){
 if(i >= j ) return 1;
 else{
   if(v[ i ] = = v[ j ])
   return palindromo( v, i+1, j-1);
  
   else
    return 0; }} 
    

quarta-feira, 21 de outubro de 2009

somar digitos ex: 123 =6

int somadigitos( int n){
if(n == 0) return 0;
else
return (n % 10)+somadigitos( n /10);


}

raiz quadrada

float raizquadrada(float x){
if(x>=1){return rma( 0, x , x ) ;}
else
if(x > = 0 & & x < 1 ) { return raux(0.999999, 0 ,x);}
else
{ return -1;}


}
float raux(float a, float b,float r){
float m;
m =(a +b)/2;
if ((a- b)<0.001){return m;}
else
if(m* m< r){return raux(a,m,r);}
else
{ return raux ( m ,b, r ) ;}



}
float rma(float a, float b,float r){
float m;
m=(a+b)/2;
if ((b-a)<0.001){return m;}
else
if(m*m>r){return rma(a,m,r);}
else
{return rma(m,b,r);}



}

minimo multiplo comum

  1. int mmc2(int a,int b)
  2. {
  3. int div;
  4. if(b == 0) return a;
  5. else
  6. div = (a*b)/(mdc2(a,b));
  7. return (div);
  8. }

maximo divisor comum

  1. int mdc(int a,int b)
  2. {
  3. if(b == 0) return a;
  4. else
  5. return mdc2(b,a%b);
  6. }
bom sempre que precisei nunka achei bons exemplos de funçoes e procedimentos recursivos
entao vou postar alguns exemplos pra quem precise !