我发现了这个问题,
编写一个函数,返回给定整数n的平方而不使用乘法.
对此的解决方案是
public static int sq(int n){
int i = n;
int sq = 0;
int count = 0;
while(i > 0){
if((i & 1) == 1){
sq += n << count;
}
i = i >> 1;
count++;
}
return sq;
}
Run Code Online (Sandbox Code Playgroud)
我理解这个函数在做什么,但我不明白为什么这个有用.
谁能解释为什么这是一个有效的解决方案?
让我们说我们有这个代码..
def test(**test):
print test
def test2(test):
print test
test(test=1, asterisk=2)
t = {"test":1, "asterisk":2}
test2(t)
Run Code Online (Sandbox Code Playgroud)
test和test2函数将打印出相同的结果.
使用**而不是传递字典有什么好处?