-- =============================================
-- Author: <maco_wang>
-- Create date: <2011-01-21>
-- Description: <将一个正整数分解为m个2的n次方的和>
-- =============================================
go
--创建函数
CREATE function GetSumSequence(@num INT)
returns nvarchar(200)
AS
BEGIN
DECLARE @numc INT
SET @numc = @num
DECLARE @numstr VARCHAR(50)
SET @numstr = ''
WHILE ( @num <> 0 )
BEGIN
SET @numstr = @numstr + CONVERT(CHAR(1), @num % 2)
SET @num = @num / 2
END
--SELECT REVERSE(@numstr)
DECLARE @i INT
SET @i = LEN(@numstr)
DECLARE @j VARCHAR(MAX)
SET @j = ''
WHILE ( @i > 0 )
BEGIN
IF ( SUBSTRING(REVERSE(@numstr), LEN(@numstr) - @i + 1, 1) = '1' )
SELECT @j = @j + '+2^' + CAST (@i-1 AS VARCHAR(10))
SET @i = @i - 1
END
return (CAST(@numc AS VARCHAR(100)) + '=' + STUFF(@j, 1, 1, ''))
END
go
--测试示例
select dbo.GetSumSequence(12)
select dbo.GetSumSequence(65)
select dbo.GetSumSequence(892)
select dbo.GetSumSequence(1919191)
--运行结果
/*
12=2^3+2^2
65=2^6+2^0
892=2^9+2^8+2^6+2^5+2^4+2^3+2^2
1919191=2^20+2^19+2^18+2^16+2^14+2^11+2^7+2^6+2^4+2^2+2^1+2^0
*/
分享到:
相关推荐
C语言程序设计-编写函数fun,求任一整数m的n次方;.c
【题目】将一个m位(m>1)的正整数n,依次去掉n中的某一位数字,得到m个整数,并将这m个整数按从小到大的次序排列后输出。 例如,对于整数387,依次去掉其中一位后,得到三个数:87、37、38,排序后为:37、38、87...
掌握VB中常用的Int、Rnd两个数学函数,学会生成某个区间随机数的方法,通过随机函数产生2个两位正整数,求这2个数之和并显示出来。
Java练习题:输入两个正整数m和n,求其最大公因数和最小公倍数
函数fun功能是:将a,b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c十位和千位上,b中的十位和个位数依次放在变量c个位和百位上。 例如,当a=45,b=12.调用该...
进制转换 把一个任意的十进制正整数 N 转换成 d 进制数。 N 是一个正整数,d 是一个大于 1 小于 10 的整数,二者均由用户输入,且两数字用换行分隔。
本文实例讲述了Python实现将一个正整数分解质因数的方法。分享给大家供大家参考,具体如下: 遇到一个python编程联系题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 版本一: 开始,没动脑子就开始...
C语言程序设计-求给定正整数m以内的素数之和;例如:当m=20时,函数值为77;
将一个正整数n(长整型)输出成“千分位”形式,即从个位数起,每三位之间加一个逗号,例如,将7654321输出成7,654,321; 运行.dsw文件后会生成debug文件夹,下面有.exe可以直接运行
每组测试数据输入的第一行有2个正整数n和c,n是集装箱数,c是轮船的载重量。接下来的1行中有n个正整数,表示集装箱的重量。 Output 对应每组输入,输出的每行是将计算出的最大装载重量。 Sample Input 5 10 7...
C语言程序设计-编写函数判断一个整数m的各位数字之和能否被7整除,可以被7整除则返回1,否则返回0;调用该函数找出100~200之间满足条件的所有数;
实现一个数的N次方源码
。。。
def lcm(a,b): for i in range(min(a,b),0,-1): if a%i==0 and b%i==0: ...c=int(input("请输入第一个数:")) d=int(input("请输入第二个数:")) print("这两个数的最小公倍数:") print(lcm(c,d))
c语言中x的n次方怎么写编程求x的n次方-用C语言程序设计:求x的n次方的函数编程求x的n次方-用C语言程序设计:求x的n次方的函数编程求x的n次方-用C语言程序设计:求x的n次方的函数编程求x的n次方-用C语言程序设计:求x...
C语言程序设计-将两个两位数的正整数a、b合并形成一个整数放在c中;合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上, b数的十位和个位数依次放在c数的十位和千位上;例如:当a=45,b=12;调用该函数后,...
已知有n中物品和一个可容纳M质量的背包,每种物品i的质量为Wi,假定将物品i放入背包,可以得到Pi的效益,求使背包中物品总效益最大的背包方案。 实验方法: 找出成本函数,根据成本函数进行算法设计。给出分支—...
【描述】求m-n以内所有素数之和并输出。...
算法-求正整数2和n之间的完全数(信息学奥赛一本通-T1150).rar
超简洁的代码,字符型数字与整型数字的转换,14行代码