读书人

大家忙出一算法解决方案

发布时间: 2012-03-05 11:54:01 作者: rapoo

大家忙出一算法
大家忙出一算法
下面是.....
有一 1,2,4,8,16.........它的是後一字是前一字的2倍

在我知道一 字 且知道 字 是由字成的

大家忙有有一算法可以找出字是由那字成的.

例如 我知道字28 我知道是由 3字成
那我怎算出 是那字成了28呢?

提示:字一定是自一其中字的和.

[解决办法]
好像,由字相加是定的
declare @a int,@m int,@r int
select @a=28,@m=0,@r=1

while @a> 1
begin
while @r> 0
begin
if power(2,@m)> @a
set @r=0
else
set @m=@m+1
end

print power(2,@m-1)
set @a=@a-power(2,@m-1)
select @r=1,@m=0
end
if @a> 0
print @a

/*
16
8
4
*/

--可以@a=900,@a=30,@a=57,@a=23
/* @a=900
512
256
128
4
*/

/*@a=30
16
8
4
2
*/

/*@a=57
32
16
8
1
*/
[解决办法]
因列 An=2^n
An> Sn-1 即(An=1+Sn-1)
所以,一,等於多少相加,是定的

读书人网 >SQL Server

热点推荐