杭电acm1407
http://acm.hdu.edu.cn/showproblem.php?pid=1407
刚开始用暴力,但有优化,结果一直都是TLE,不知道是不是hdoj上面有什么改动没有,后来用了打表的方法,125ms过了
View Code
1 #include <stdio.h> 2 #include <math.h> 3 4 int main() 5 { 6 int x, y, z, num, flag; 7 int a[101]; 8 for(x = 1; x < 101; x++) { 9 a[x] = x*x; 10 } 11 while(scanf("%d", &num) != EOF) { 12 flag = 1; 13 for(x = 1; a[x] < num && flag; x++) { 14 for(y = x; a[y] < num && flag; y++) { 15 for(z = y; a[z] < num && flag; z++) { 16 if(num == (a[x] + a[y] + a[z])) { 17 printf("%d %d %d\n", x, y, z); 18 flag = 0; 19 } 20 } 21 } 22 } 23 } 24 return 0; 25 }