PythonとJavaを知っている人なら誰でも私を助けてくれるかもしれません。PythonコードをJavaに変換する際に問題が発生する
私は単純なプログラムをPythonでJavaに書く方法を知っているから単純に変換しようとしていますが、私は明らかに何か間違ったことをしています。ここで
は、Pythonのコードです:
def correct(a, b, c):
if a + b == 6 and a**2 + b**2 + c**2 == 18:
return True
else:
return False
def show(a, b, c):
print("a is", a, "\nb is", b, "\nc is", c)
def test(a=1, b=1, c=1):
"""Find the value of c, where:
a + b = 6 and a*a + b*b + c*c = 18
"""
for i in range (-10, 10):
a = i
if correct(a, b, c):
show(a, b, c)
return
for j in range(-10, 10):
b = j
if correct(a, b, c):
show(a, b, c)
return
for k in range(-10, 10):
c = k
if correct(a, b, c):
show(a, b, c)
return
print("Nothing worked...")
test()
出力:
a is 3
b is 3
c is 0
そして、ここでは、Javaバージョンで私の試みです:
private class test {
/* Find the value of c, where:
* a + b = 6 AND a*a + b*b + c*c = 18
*/
public static void main(String[] args) {
int a = 1;
int b = 1;
int c = 1;
for(int i = -10; i == 10; i++) {
a = i;
if (correct(a, b, c)) {
show(a, b, c);
}
for (int j = -10; j == 10; j++) {
b = j;
if (correct(a, b, c)) {
show(a, b, c);
}
for (int k = -10; k == 10; k++) {
c = k;
if (correct(a, b, c)) {
show(a, b, c);
}
}
}
}
System.out.println("Nothing worked...");
}
public static void show(int a, int b, int c) {
System.out.printf("a is: %s\nb is: %s\nc is: %s", a, b, c);
}
private static boolean correct(int a, int b, int c) {
if (a + b == 6 && a*a + b*b + c*c == 18) {
return true;
}
else {
return false;
}
}
}
出力:
"Nothing worked..."
誰かが親切に私を置くことができますか?
多くのありがとうございます。
[mcve]としてください。コードが何をすべきか説明してください。あなたの期待することを説明してください。あなたが書こうとしているコードがどのように失敗しているのかを説明してください。あなたは最終的に、あなたに不公平な質問であるこの問題を完全に解決するようコミュニティに求めています。 – idjaw
for(int i = -10; i == 10; i ++)ループが実行される頻度はどのくらいですか? –
すべての組み合わせをカバーしている最も内側のループの内側でチェックするだけで済みます。 'i''、' j''、 '' k'を使うだけで、 'a'、' b'、 'c'は必要ありません。 –