一个数,由2^n加和组成。
例子:1+2+4+8=15;
1+4+16=21;那么给定一个数,如何求出它是那些2^n数字组成,保存在数组中去。
例如:已知一个数4141=1+8+32
例子:1+2+4+8=15;
1+4+16=21;那么给定一个数,如何求出它是那些2^n数字组成,保存在数组中去。
例如:已知一个数4141=1+8+32
解决方案 »
- 访问网络文件时出现返回1203,请教解决原因!!![
- JS 如何调用VLC接口 实现本地视频 流化?
- 抢分贴,初学asp.net ,如何在Html页显示变量值
- 页面用javascript弹出层后,当执行页面数据回发后怎么保持这个层不消失
- 如何 中英文转换的网站 asp.net
- 求oa归档思路
- 想拜师学艺,有没有人收!!
- 检索 COM 类工厂中 CLSID 。。。。。。8000401a,求大神!!
- 赋值问题
- 高手救命啊:实例化Microsoft.Office.Interop.Excel.application时报错!(在线等)
- gridview添加的列指定位置
- 关于objectdatasource的两个问题(困扰了我很久,麻烦大家来看看,帮帮我)
using System.Collections.Generic;public class MyClass
{
public static void Main()
{
int a = 21;
int e = 0;
while(a>0)
{
if (a%2==1)
WL(Math.Pow(2, e));
a=a/2;
e++;
}
RL();
}
#region Helper methods private static void WL(object text, params object[] args)
{
Console.WriteLine(text.ToString(), args);
}
private static void RL()
{
Console.ReadLine();
}
private static void Break()
{
System.Diagnostics.Debugger.Break();
} #endregion
}
String str = Convert.ToString(iTest, 2);
String strRet = iTest.ToString() + "=";
int index = str.Length - 1;
foreach (Char c in str)
{
if(c == '1') {
strRet += Math.Pow(2, index).ToString() + "+";
}
index--;
}
strRet = strRet.Substring(0, strRet.Length - 1);
for (int i = 0; i < arr.Length; i++)
{
if(Convert.ToInt32(arr[i])!=0)
{
Console.WriteLine(Math.Pow(2, i));
}
}
RL();
看看这个网站吧:http://www.svnhost.cn