帮我编写一个java程序用于给定一个非负整数c,要判断是否存在两个整数a和b使得a的平方加b的平方等于c。如果存在,则输出任意一组满足要求的a和b;如果不存在,则输出-1
时间: 2024-10-17 16:13:57 浏览: 61
你可以使用Java编写一个循环查找解决方案的程序。这里是一个简单的示例:
```java
import java.util.Scanner;
public class SquareSum {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个非负整数c:");
int c = input.nextInt();
// 检查c是否能表示成两个整数的平方之和
for (int a = 0; a <= Math.sqrt(c); a++) {
int b = Math.sqrt(c - a * a);
if (b == (int)b) { // 因为我们需要整数解
System.out.printf("找到了一对解: a = %d, b = %d\n", a, b);
return;
}
}
System.out.println("-1,这样的整数组合不存在");
}
}
```
这个程序首先从0到`Math.sqrt(c)`遍历所有可能的`a`值,然后计算`b`的值。如果`b`也是整数并且满足条件(即`b*b`的和等于`c`),就找到一组解并打印出来。如果没有找到这样的组合,最后输出-1。
阅读全文