【叶子函数分享四十】将一个正整数分解为m个2的n次方的和
来源:互联网 发布:手机淘宝二手怎么进去 编辑:程序博客网 时间:2024/04/28 07:37
-- =============================================
-- 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
*/
- 【叶子函数分享四十】将一个正整数分解为m个2的n次方的和
- 【叶子函数分享四十】将一个正整数分解为m个2的n次方的和
- 将任意一个正整数n整数的立方分解为连续n个奇数之和
- 将一个数m分解为n个不同的数之和(积)
- 将一个正整数分解为连续的自然数的和
- 正整数分解为n个连续正整数
- 将一个正整数分解为一系列不重复的整数的和
- 将一个正整数分解为多个连续整数之和
- m的n次方
- java实现几个2的n次方和的分解
- 给定正整数n和m,计算出n个元素的集合{1,2,...,n}可以划分为多少个不同的由m个元素组成的子集合
- 贪心算法——输入任意一个正整数N,将其分成多个互不相同的整数,和为N,乘积最大
- 实现将一个正整数随机拆分为三个正整数-- 【叶子】
- 有一个整数n,将n分解成若干个整数之和,问如何分解能使这些数的乘积最大,输出这个乘积m
- 如何有效的实现一个正整数的N次方
- 如何求解前n个正整数k次方的和的一般公式?
- 一个正整数分解为几个连续的正整数之和
- 题目:使用命令行参数编写一个程序,其功能是将任意一个正整数m变换为指定的n 进制数串输出。命令行的格式为:
- RRC连接、RL、RB、RAB的本质
- gcc扩展学习总结
- linux环境搭建和arm开发板环境搭建 续
- 延迟加载DLL
- Oracle 安装会自动的生成sys用户和 system 用户
- 【叶子函数分享四十】将一个正整数分解为m个2的n次方的和
- Oracle 安装会自动的生成sys用户和 system 用户
- android--groupListView
- pkg-config找不到安装过的包
- 在Ubuntu下修改PATH的三种方法
- SIP协议在3G网络中的应用
- Oracle 安装会自动的生成sys用户和 system 用户
- AfxGetInstanceHandle、AfxSetResourceHandle
- 词法分析