10进制数转2 进制数
题目:2 进制除了 0,1,还可以用 2 表示。例如:
1-> 1
2-> 10 or 02
3->11
4 ->100 or 020 or 012
问题:这样一个十进制数转为二进制数,就不是唯一的了。现求十进制数 N 转换为这种二进制数的所有表示方法数。
f(0)=1, f(1)=1, f(2)=2,
f(n) = f( (n-1)/2) 当 n 为奇数
f(n)= f(n/2)+f((n-2)/2 )当 n 为偶数
public class TenToTwo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(getRes(sc.nextInt()));
}
private static int getRes(int n) {
if (n == 0) {
return 1;
}
if (n == 1) {
return 1;
}
if (n == 2) {
return 2;
}
if (n % 2 == 1) {
return getRes((n – 1) / 2);
} else {
return getRes(n / 2) + getRes((n – 2) / 2);
}
}
}
算法设计与分析03-十进制转二进制问题
原文作者:算法
原文地址: https://www.twblogs.net/a/5bd3a82d2b717778ac20a784
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://www.twblogs.net/a/5bd3a82d2b717778ac20a784
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。