--遞迴法
create function f_getnum(@i int)
returns @t table(r int)
asbegin
declare @n int
set @n = 1
while 2*@n<=@i
begin
set @n = @n * 2
endinsert @t select @n
set @n = @i - @n
if @n > 0
insert @t select r from f_getnum(@n)
return;
endgo
select * from f_getnum(10)
--迴圈法
alter function f_getnum (@i int)
returns @t table(r int)
asbegin
declare @n int
while @i > 0
begin
set @n = 1
while 2*@n<=@i
begin
set @n = @n * 2
endinsert @t select @n
set @i = @i - @n
endreturn;
endgo
select * from f_getnum(10)
r-----------82
(2 行受影響)
求最接近數n的2的次方數
我們當然可以直接暴力求解 負次方不考慮 int findtablesizeof2 const int target else 可能出現target是兩者的平均值,就暫且返回大值吧 return temp2power 2 target target temp2power temp2power 2 te...
9112 求2的n次方的精確值
time limit 1 second memory limit 2 mb 問題描述 求2 n的精確值。n由使用者輸入,0 n 3232。輸入只有一行,乙個正整數n。輸出為計算的結果,最後用回車結束。8256 換行 題解 這是個單精度乘高精度的問題,每次在做乘方的時候,把當前算出的結果的每一位都乘上...
判斷乙個數是否為2的N次方
package aboutmove 判斷是否為2的次方 public class aboutmove return false public static void main string args 注意點千萬不能在第15行寫成n 1 因為6 2 3 3 2 1這是整形 時間複雜度為o logn 演...