如何将一个正整数分解成2的幂次之和,用C或C++
来源:百度知道 编辑:UC知道 时间:2024/05/28 02:42:02
比如输入10
应输出8+2
应输出8+2
#include<stdio.h>
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<sizeof(unsigned)*8;++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];<
C语言程序设计-将一个正整数分解成质因数的乘积
将一个正整数分解质因数由键盘输入一个正整数n,输出n的分解质因数这道题用pascal语言如何做
输入一个正整数n,将n分解成质因数幂的乘积形式.
用c语言将一个正整数分解成质因数的乘积
将一个正整数分解质因数?用C
将任意一正整数(1<n<100)分解成若干正整数的和.
编写一个自定义函数,实现将任意一个正整数分解为其最小因子的连乘式,如:8=2*2*2
将n分解为正整数的和(pascal语言)
请编写程序实现的功能是:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。