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;
}