題目:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
在那50題看到這個的時候,感覺挺簡單的,但是實際做出來的時候,花費了真不少時間(小白,不太懂),也看了網上的發佈的,但是發現都是使用Math裏面的一個開平方方法,因爲沒有有學到這個,所以不想用這個方法來用.就像着能不能不用系統給定的方法來完成,就使勁琢磨,還好,終於出來了,雖然感覺不太好
public class Demo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num1 = 0;//定義兩個數,來獲取有多少個符合條件的完全平方數
//定兩個數組,來存儲每一個符合條件的完全平方數,大小100,是因爲不確定到底有多少個,就先設置了100,太小了也不行,聽說是有自動增長數組的函數,但是沒有學過,就沒有用
int[] arr1 = new int[100];
int[] arr2 = new int[100];
//利用循環,遍歷每一個符合條件的數值
for (int i = 0; i < 10000; i++) {
for (int j = 0; j < 10000; j++) {
if (i + 100 == j * j) {
//判斷符合i+100的數,如果符合,把第i個元素賦值給arr1[num1]
num1++;//每一個符合的數,都執行這句
arr1[num1] = i;//賦值
}
}
for (int k = 0; k < 10000; k++) {
if (i + 268 == k * k) {
//判斷符合i+100+128的數,如果符合,把第i個元素賦值給arr2[num2]
num2++;//每一個符合的數,都執行這句
arr2[num2] = i;//賦值
}
}
}
//利用上面返回的值,來循環兩個數組,判斷兩個數組的每一個元素是否相等,相等的話,輸出兩個數組任意一個該下標的值
//無效值,數組沒有給定值,好像默認是0值,
for (int n = 0; n < arr1.length; n++) {
for (int m = 0; m < arr2.length; m++) {
if (arr1[m] == arr2[n] && arr1[m] != 0 && arr2[n] != 0) {//判斷是否相等,是否是無效值
System.out.println(arr1[m]);
}
}
}
}
}
最後,感覺試用while好點,因爲while可以不用給定10000這樣的不確定值,後面再改進改進