方程: a^2 + b^2 + c^2 = 1000
这个方程有正整数解吗?有:a,b,c=6,8,30 就是一组解。
求出 a^2 + b^2 + c^2 = n(1<=n<=10000)的所有解,解要保证c>=b>=a>=1。
存在多组测试数据,每组测试数据一行包含一个正整数n(1<=n<=10000)
输出格式如果无解则输出"No Solution"。
如果存在多解,每组解输出1行,输出格式:a b c,以一个空格分隔
按照a从小到大的顺序输出,如果a相同则按照b从小到大的顺序输出,如果a,b都相同则按照c从小到大的顺序输出。
4 1000输出样例
No Solution 6 8 30 10 18 24代码
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { int n = in.nextInt(); int m[] = new int[3]; for (int a = 1; a <= Math.sqrt(n); a++) { for (int b = 1; b <= Math.sqrt(n); b++) { for (int c = 1; c <= Math.sqrt(n); c++) { if(a * a + b * b + c * c > n){ break; } if (a * a + b * b + c * c == n && a<=b && b<=c) { m[0] = a; m[1] = b; m[2] = c; System.out.print(m[0] + " " + m[1] + " " + m[2]); System.out.println(); } } } } if (m[0] == 0) { System.out.print("No Solution"); System.out.println(); } } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)