方程的整數解
c
應該還可以做其他方面的優化,減少循環的次數吧
# include <stdio.h>
int main()
{
/**
方程的整數解
方程:a^2+b^2=2009;
求有幾組解集打印出來
*/
//不難看出這是一個二元二次函數
//我們使用兩次循環,第一層循環就是遍歷其中一元a
int a,b;
for(a=1; a<(int)sqrt(2009); a++) {
//第二層循環就是遍歷另外一元b
for(b=a+1; b<(int)sqrt(2009); b++) {
//判斷是否符合 a^2+b^2=2009 如果符合打印出來
if(a*a + b*b == 2009) {
printf("%d*%d+%d*%d=2009\n", a,a,b,b);
}
}
}
return 0;
}
java
寫一個三元二次方程
public static void main(String[] args) {
//a^2+b^2+c^2=1000
for(int a = 1; a < Math.sqrt(1000); a++) {
for(int b = a + 1; b < Math.sqrt(1000); b++) {
for (int c = b + 1; c < Math.sqrt(1000); c++) {
if(a*a+b*b+c*c == 1000) {
System.out.println(a+"、"+b+"、"+c);
System.out.println("----------");
}
}
}
}
}