大家忙出一算法
大家忙出一算法
下面是.....
有一 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)
所以,一,等於多少相加,是定的