|
|
发表于 2007-6-26 22:46:00
|
显示全部楼层
Re:请教一下这个问题
我来试试,假设要计算的是数 W
找1个1维N个数组 B[N]
B[N]=2^n 存2的1~n次方结果
//---------
int m;
while(W>0) //是否可在分解
{
m=searchInB(W); //在B[N]中查找 使得 2^m<W<2^(m+1)
cout<<m; //输出结果
w=w-B[m]; // 减去2^m ,继续计算
}
//------
我解释一下吧~
比如你要测定12=2^3+2^2
先查到 8<12<16 <----输出 3
12-8=4 <----减去已经计算好的部分,留下的部分继续计算
再查到 4<=4<8 <-----输出 2
4-4=0 <-----退出循环,求解完毕
答案就是 3 , 2
//---------
不知道你看清楚没有?
呵呵
|
|