怎样将一个数组分解为几个2的幂的数组~~~~~~~~~~~~~~~~
2条回答 默认 最新
- 傻傻杰 2016-06-01 14:34关注
#include
int seperate(unsigned n , int value[]);
int main()
{
unsigned a;
int i,n;
int value[sizeof(unsigned)*8];printf("Please input the integer:\n");
scanf("%u",&a);
n=seperate(a,value);
printf("%d=%d",a,value[0]);
for(i=1;i<n;++i)
printf("+%d",value[i]);
putchar('\n');
system("PAUSE");
return 0;
}int seperate(unsigned n , int value[])/*该函数将n 分解为2的幂次的和,将非零结
果存在数组value中,并返回非0数的个数*/
{
int i,j=0,y;
int temp[sizeof(unsigned)*8];for(i=0;i {
y=n;
y>>=1+i;
y<<=1+i;
temp[i]=n&(~y);
n=y;
}
for(i=0;i<sizeof(unsigned)*8;++i)
{
if(temp[i]==0)
;
else
value[j++]=temp[i];
}return j;
}解决 无用评论 打赏 举报
悬赏问题
- ¥15 求网页搭建平台会的联系我
- ¥15 尼康光电绝对值编码器(相关搜索:绝对值|编码器)
- ¥20 INCA标定工具ER亮红灯
- ¥15 hive on spark
- ¥15 星穹铁道中的ai自动战斗逻辑
- ¥15 国产浪潮电脑跳转个别网页有问题
- ¥15 SimpleHook 一下android fake模块的VIP日期
- ¥15 如何在VBA中利用word的错词提示功能识别word文本中的错别字并标注
- ¥15 jupyter notebook无法识别的空格,如何解决?(语言-python)
- ¥15 自动回复评论的小插件