GCD

  • 54
  • 0
  • 2019-06-12

GCD

public static int getGCD(int a, int b) 
{
   int max = Math.max(a, b); 
   int min = Math.min(a, b); 
     if (max % min != 0)
     { 
       return getGCD(min, (max % min)); 
     } 
   return min; 
}

質數有哪些

#include <stdio.h>
int wtf(int num)
{
    int c=0;
    if(num==1)
    return 0;
    else
    {
       for (c=2;c<num;c++)
        {
           if( num%c==0 )
            return 0;
        }
        return 1;
    }
}

int main()
{
    printf(  "%d",  wtf(11) );
    return 0;
}

十進位轉二進位變成000000000000xxx

#include <stdio.h>
int binary[32]={0};
void bit_pattern(int num){
 static int count = 0;
 if(num!=0){
 binary[count++]=num%2;
 bit_pattern(num/2);
 }
 return ;
}
int main(void){
 int i;
 bit_pattern(444);
 for(i=31; i>=0; i--)
 printf("%d", binary[i]);
 printf("\n");
 return 0;
}

遞迴費事數列

#include <stdio.h>
int f(int n){
 int a=0, b=1, c, i;
 if(n<0)
 return -1;
 else if(n==0)
 return 0;
 else if(n==1)
 return 1;
 for(i=2; i<=n; i++){
 c=a+b;
 a=b;
 b=c;
 }
 return c;
}
int f_rec(int n){
 if(n<0)
 return -1;
 else if(n==0)
 return 0;
 else if(n==1)
 return 1;
 else
 return( f_rec(n-1)+f_rec(n-2) );
}
int main(void){
 printf("%d %d\n", f(7), f_rec(7));
 return 0;
}