VC的小问题,请各位大侠帮忙

yuuy163 2010-04-22 05:19:17
计算次方的问题,比如说我们知道28是2的4次方+2的3次方+2的2次方,如何通过一个函数分解数字,返回次方数,比如上例,我输入28,只要调用某个函数,可以返回4,3,2。返回的形式可以任意。可以一次返回,或者返回为一个数组都可以。

或者不知道API有没有封装好的,有的话大侠们给我个给函数名。

万分感谢!!!
...全文
122 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
luuillu 2010-04-23
  • 打赏
  • 举报
回复
int main()
{int num,i=0;
printf("请输入一个整数");
scanf("%d",&num);
while(num)
{
if(num&0x1) printf("%d",i); //从小到大输出
num>>=1;
i++;
}
}
philosophy2007 2010-04-22
  • 打赏
  • 举报
回复
直接写函数,除2取余就可,像楼上的函数。
jackylvm 2010-04-22
  • 打赏
  • 举报
回复
#include <bitset>

std::bitset<128> bi(28);
for (int i = 0; i < 128; ++i)
{
if (bi.test(i))
{
//! 值为真表示这一位为1,那就是这一位为2的某个次方 [4月/22日/2010年]
//! 比如现在bi的值应该是(0,0,1,1,1,0,....)
cout<<"值为真\n";
}
}
这个只能计算2的次方,其他的还得另写算法
yuuy163 2010-04-22
  • 打赏
  • 举报
回复
把我自己写的贴上,觉得循环太多了,麻烦,大侠们有知道简单的告知一声吧。
yz175396982 2010-04-22
  • 打赏
  • 举报
回复
帮顶 大侠们来帮忙啊
Eleven 2010-04-22
  • 打赏
  • 举报
回复
怎么搞的想哥德巴赫猜想啊。。。。
尹成 2010-04-22
  • 打赏
  • 举报
回复
友情帮顶
yuuy163 2010-04-22
  • 打赏
  • 举报
回复
顶起来,大侠们来帮忙啊

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧