• HDU 1407 测试你是否和LTC水平一样高


    Problem Description
    大家提到LTC都佩服的不行,不过,如果竞赛只有这一个题目,我敢保证你和他绝对在一个水平线上! 你的任务是: 计算方程x^2+y^2+z^2= num的一个正整数解。
     
    Input
    输入数据包含多个测试实例,每个实例占一行,仅仅包含一个小于等于10000的正整数num。
     
    Output
    对于每组测试数据,请按照x,y,z递增的顺序输出它的一个最小正整数解,每个实例的输出占一行,题目保证所有测试数据都有解。
     
    Sample Input
    3
     
    Sample Output
    1 1 1
     
    Author
    lcy

    题意:略。

    分析:题目有两个地方将问题简化了,只求正整数解,并且只求一个就可以了。巧妙的方法没想到,就是三重循环,不过可以控制一下循环的的次数,循环下限是1,循环上限是num的平方根,详见代码。

    AC源代码(C语言):

     1 #include<stdio.h>
     2 #include<math.h>
     3 
     4 int main()
     5 {
     6     int num,x,y,z;
     7     double s;
     8     loop:while(scanf("%d",&num)==1)
     9     {
    10         s=sqrt((double)num);
    11         for(x=1;x<s;x++)
    12             for(y=1;y<s;y++)
    13                 for(z=1;z<s;z++)
    14                     if(x*x+y*y+z*z==num)
    15                        {
    16                            printf("%d %d %d\n",x,y,z);
    17                            goto loop;
    18                        }
    19                     else continue;
    20     }
    21     return 0;
    22 }

    2013-05-09

  • 相关阅读:
    jQuery scroll事件
    jquery offset() 与position()方法的区别
    股票基本知识
    swfObject 使用说明
    javascript和swf在网页中交互的一些总结
    TCP 同步传输:客户端发送,服务器段接收
    读取Excel
    sql 执行顺序
    支付宝及时到帐接口
    Ajax中get提交和post提交的区别
  • 原文地址:https://www.cnblogs.com/fjutacm/p/3068976.html
Copyright © 2020-2023  润新知