【发布时间】:2015-12-19 05:58:18
【问题描述】:
这里有两个相同的 C++ 和 Python 代码:函数必须重复执行,直到没有输入。 C++ 代码通过,但 Python 代码没有通过测试用例。 python代码有什么问题?谢谢
python 代码:
def func(n):
if n==1:
return 1
else:
s=(n+1)//2
return s*s + func(n//2)
while True:
n=input()
if n=='':
break
else:
print(func(int(n)))
c++代码:
#include <bits/stdc++.h>
using namespace std;
long long fun(long long n){
if(n==1)
return 1;
long long s=(n+1)/2;
return s*s+fun(n/2);
}
int main(){
long long n;
while(cin>>n)
cout<<fun(n)<<endl;
}
【问题讨论】:
-
解释一下“通过测试用例”对你意味着什么。 “通过” TC 的标准是否只是退出循环?
-
为什么在python代码中使用
//2? -
@aliasm2k:要……将整数除以二?
-
我认为
/2应该可以工作。想知道为什么//2是必不可少的。无论如何,谢谢:) -
您的输入是多行吗?
cin >> n将读取一个单词,input()将读取一行。
标签: python python-3.x testcase