递归算法 求个函数 2的多少次方例如8 =2*2*2如果输入 8结果是 8如果输入 7(2*2+2*1+2*0)结果是 4 2 1如果输入 16结果是 16如果输入 15结果是 8 4 2 1如果输入 10结果是 8 2 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //算最大2次幂数public double pow2(double n) { double i = 0; double temp = n; while (Math.Pow(2, i) < n) { i++; } if (Math.Pow(2, i) > n) return --i; else return i; }//主函数 public List<double> Get2PowArray(double n) { double temp = n; List<double> arraylist = new List<double>(); while (temp >= 1) { double maxindex = this.pow2(temp); temp -= Math.Pow(2, maxindex); arraylist.Add(Math.Pow(2, maxindex)); } return arraylist; } 返回的是一个List<double>顺序输出就是你想得到的结果了. 自己写的服务不能启动 StreamWrite,StreamReader,和FileStream的问题 高手们 帮帮忙 用C#操作Excel打印,printout的问题 C# 事件 能重写吗 ? 100分请教:如何实现用Excel转换成网页!! 初学c#,做个个人主页,大家评一下,采用web Service hibernate中怎么保存数据的状态呢? C#如何实现Chrome多个网页窗口同步点击? C#如何用结构体直接读取二进制文件的内容 C#用查询SQL数据表中时间记录?有代码高手找出错误,谢谢 如何计算两字符数组的公共部分(含重复项)
public double pow2(double n)
{
double i = 0;
double temp = n;
while (Math.Pow(2, i) < n)
{
i++;
}
if (Math.Pow(2, i) > n)
return --i;
else
return i;
}//主函数
public List<double> Get2PowArray(double n)
{
double temp = n;
List<double> arraylist = new List<double>();
while (temp >= 1)
{
double maxindex = this.pow2(temp);
temp -= Math.Pow(2, maxindex);
arraylist.Add(Math.Pow(2, maxindex));
}
return arraylist;
}