1. 求最大公约数
辗转相除法
private static int gcd(int x,int y){
if(x<y)
return gcd(y,x);
if(y==0)
return x;
else return gcd(x-y,y);
}
2. 十进制转换成任意进制
思路:
1、十进制数 num 转换为 n进制
num%n结果肯定为n进制数的最后一位
结果存入一个数组中
2、进入一个循环num!=0时候
num=num/n
重复1的操作
将倒数第二位、倒数第三位。。。到最终结果存入数组
3、遍历数组从 count到0
/**
* @param num 输入的十进制数
* @param n 要转换的进制
*/
public static void transform(int num,int n){
if(num==0){
System.out.println(0);
return;
}
int array[]=new int[100];
int location=0;
while(num!=0){//当输入的数不为0时循环执行求余和赋值
int remainder=num%n;
num=num/n;
array[location]=remainder;//将结果加入到数组中去
location++;
}
show(array,location-1);
}
private static void show(int[] arr,int n){
for(int i=n;i>=0;i--){
if(arr[i]>9){
System.out.print((char)(arr[i]+55));
}
else
System.out.print(arr[i]+"");
}
}
3. 斐波那契数列
int fabnacci(int n){
if(n<0)
return 0;
else if(n==1)
return 1;
else
return fabnacci(n-1)+fabnacci(n-2);
}