62,243
社区成员




public List<int> func(int input)
{
List<int> result = new List<int>();
int m = 1;
for (int i = 0; i < 31; i++)
{
if ((input & m) == m)
result.Add(m);
m = m << 1;
}
return result;
}
看了楼上的回帖我真觉得C#被别人诟病,被别人瞧不起都是有道理的。好像搞C#的大多数人都缺少编程的基础思维和基础知识。
public List<int> XXXX(int sum){
List<int> ret = new List<int>();
for(int i=1;Math.Pow(2, i)<=sum,i++){
int _i = Math.Pow(2, i);
if((sum&_i)==_i){
ret.add(_i);
}
}
return ret;
}
代码可能有错,手写的。大概思路应该没有错吧! class Program
{
static void Main(string[] args)
{
for (; ; )
{
int input = int.Parse(Console.ReadLine());
for (int i = 0; i <= 32; i++)
{
if ((input & 0x1) == 0x1)
{
Console.WriteLine(Math.Pow(2, i));
}
input >>= 1;
}
}
}
}