A:一个数由2的幂组成有多少种组成方法
Q:递归思路,循环代码
class 一个数由2的幂组成有多少种组成方法
{
//递推关系为f(num)=f(num-1)+f(num-2)+...+f(num-2^n)
//当然num>=2^n
public static int getKinds(int num)
{
int[] arr=new int[num+1];
arr[0]=1;
arr[1]=1;
arr[2]=2;
for (int i=3;i<=num ;i++ )
{
for (int j=0;(int)Math.pow(2,j)<=i ;j++ )
{
arr[i]+=arr[i-(int)Math.pow(2,j)];
}
}
return arr[num];
}
public static void main(String[] args)
{
System.out.println(getKinds(6));
}
}