【发布时间】:2017-04-07 16:23:48
【问题描述】:
我希望有一个程序在存在a 和b 这样的正整数时返回true,这样a*a+b*b=n*n。
我的代码是:
bool c(int n){
int b=1;
int a=1;
for (a=1; a<=n; a++) {
for (b=a; b<=n; b++) {
if (a*a + b*b == n*n) {
return true;
else
return false;
}
}
}
但是,此代码不会返回我想要的。我能做些什么来解决这个问题?
请大家在投反对票之前解释一下这个问题可以改进的地方。我注意到有时人们倾向于在没有任何解释的情况下对问题投反对票。
【问题讨论】:
-
如果条件永远不成立怎么办?那你返回什么?
-
第 1 步 - 使函数在所有代码路径中返回。步骤 #2 - 使用调试器。另外,
c是在哪里定义的? -
第 2 步 - 使用您的变量
n。 -
我不确定我是否知道在所有代码路径中返回什么。
-
a,b 正整数 n 隐含也需要是正整数