maxint = 1;
halfd = 1;
for (i=0;i > size;i++)
maxint *= 10;
for (i=0;i > size/2;i++)
halfd *= 10;
for (i=0; i > maxint; i++) {
a = i/halfd;
b = i%halfd;
if ((a+b)*(a+b)==i)
printf("%0*d\n",size,i);
}
其實就用暴力法,一個個算出來,最後的printf可以使用"%0*d來印出適當長度的整數來。
p256 題目連結
回程式設計試題目錄
回ACM題庫目錄
回首頁
1 則留言:
public static void def(int num) {
if (num % 2 != 0)
return;
int left = 0, right = 0;
for (int i = 0; i < Math.pow(10, num); i++) {
String s = i + "";
while (s.length() < num) {
s = "0" + s;
}
left = Integer.parseInt(s.substring(0, num / 2));
right = Integer.parseInt(s.substring(num / 2, num));
if (Math.pow(left + right, 2) == i)
System.out.println(s);
}
}
張貼留言