本文主要是介绍HDOJ 1407 测试你是否和LTC水平一样高 就是三个数的平方是否等于一个数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
测试你是否和LTC水平一样高
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15929 Accepted Submission(s): 5217
Problem Description
大家提到LTC都佩服的不行,不过,如果竞赛只有这一个题目,我敢保证你和他绝对在一个水平线上!
你的任务是:
计算方程x^2+y^2+z^2= num的一个正整数解。
你的任务是:
计算方程x^2+y^2+z^2= num的一个正整数解。
Input
输入数据包含多个测试实例,每个实例占一行,仅仅包含一个小于等于10000的正整数num。
Output
对于每组测试数据,请按照x,y,z递增的顺序输出它的一个最小正整数解,每个实例的输出占一行,题目保证所有测试数据都有解。
Sample Input
3
Sample Output
1 1 1
通过的代码
#include<stdio.h>
int main() {
int x,y,z,num,cut;
while(scanf("%d",&num)!=EOF) {
cut=0;
if(cut) break;
else {
for(x=1; x<100; x++) {
if(cut) break;
else {
for(y=1; y<100; y++) {
if(cut) break;
else {
for(z=1; z<100; z++) {
if(x*x+y*y+z*z==num) {
printf("%d %d %d\n",x,y,z) ;
cut=1;
}
}
}
}
}
}
}
}
return 0;
}
超时的代码
#include<stdio.h>
int main() {
int x,y,z,num;
while(scanf("%d",&num)!=EOF) {
for(x=1; x<100; x++) {
for(y=1; y<100; y++) {
//num-(x*x+y*y)=
for(z=1; z<100; z++) {
if(x*x+y*y+z*z==num)
printf("%d %d %d\n",x,y,z) ;
}
}
}
}
return 0;
}
这篇关于HDOJ 1407 测试你是否和LTC水平一样高 就是三个数的平方是否等于一个数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!