andy6804tw
2/22/2017 - 3:32 AM

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=192 這題你會發現quirksome number是一個完全平方數例如81=9*9

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 月 */
}