題目:一個整數(shù),它加上 100 后是一個完全平方數(shù),再加上 168 又是一個完全平方數(shù),請問該數(shù)是多少?
完全平方指用一個整數(shù)乘以自己例如1×1,2×2,3×3等,依此類推。若一個數(shù)能表示成某個整數(shù)的平方的形式,則稱這個數(shù)為完全平方數(shù)。完全平方數(shù)是非負(fù)數(shù)(下面會說到)。
靈巧的寫法
這題最大的難點應(yīng)該就是確定范圍了,要是正著想不好確定,那就倒著思考
循環(huán)范圍:
最?。?br> 先求加上100再加上168后誰能開方,應(yīng)為完全平方數(shù)從0開始,加上100能是完全平方數(shù)最小0,再加168那就最小就是168開方約13那就取12
最大:
我沒找十分精確,99的平方與100的平方之差就大于168了所以不可能比100更大所以最大取99,有時間可以再求一下。文章來源:http://www.zghlxwxcb.cn/news/detail-759087.html
為什么要%1,因為
Math.sqrt()
得到的是一個double類型的要想看開方后是不是整數(shù)那就取模1看是不是0文章來源地址http://www.zghlxwxcb.cn/news/detail-759087.html
package myself;
/**
* @Auther QY
* @Date 2023/12/14
*/
public class Thirteen {
public static void main(String[] args) {
perfectSquare();
}
public static void perfectSquare() {
for (int i = 12; i < 100; i++) {
//這層看它減去168是不是還是平方數(shù),也就是原數(shù)+100是不是平方數(shù)
if (Math.sqrt(Math.pow(i, 2) - 168) % 1 == 0) {
// 如果是那就減去268得到原數(shù)
System.out.println((int) (Math.pow(i, 2) - 268));
}
}
}
}
大眾寫法
public static void play() {
for (int x = -100; x < 100000; x++) {
if (Math.sqrt(x + 100) % 1 == 0) {
if (Math.sqrt(x + 268) % 1 == 0) {
System.out.println(x);
}
}
}
}
到了這里,關(guān)于題目:一個整數(shù),它加上 100 后是一個完全平方數(shù),再加上 168 又是一個完全平方數(shù),請問該數(shù)是多少?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!