https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=192
這題你會發現quirksome number是一個完全平方數例如81=99,n=4假如有四位數0~9999依序判斷肯定會TL超時 所以我們只要判斷1、4、9、16....到(10^(n/2)-1)(10^(n/2)-1) 簡單來說當n=4時迴圈從0開始直到100結束,求0~99的完全平方來判斷是否為quirksome number
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
while(scn.hasNext()){
int n=scn.nextInt(),count=0;
int halfBound = (int)Math.pow(10, n / 2);
for(int i=0;i<halfBound;i++){
int num=i*i;
if(Math.pow(num/halfBound+num%halfBound,2)==num)
System.out.printf("%0"+n+"d\n",num);
}
}
}
/*題目:Q256: Quirksome Squares
作者:1010
時間:西元 2017 年 2 月 */
}