zoukankan      html  css  js  c++  java
  • 51Nod 1080 两个数的平方和

    1080 两个数的平方和

    基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题

    给出一个整数N,将N表示为2个整数i j的平方和(i <= j),如果有多种表示,按照i的递增序输出。

    例如:N = 130,130 = 3^2 + 11^2 = 7^2 + 9^2 (注:3 11同11 3算1种)

    Input

    一个数N(1 <= N <= 10^9)

    Output

    共K行:每行2个数,i j,表示N = i^2 + j^2(0 <= i <= j)。

    如果无法分解为2个数的平方和,则输出No Solution

    Input示例

    130

    Output示例

    3 11

    7 9

     1 /*优化思路很巧妙  没有想到*/ 
     2 #include<cstdlib>
     3 #include<algorithm>  
     4 #include<cstring>  
     5 #include<cmath>
     6 #include<cstdio>
     7 using namespace std; 
     8 int main()  
     9 {  
    10     int n;  
    11     scanf("%d",&n);  
    12     bool ok=0;  
    13     int m=sqrt(n+0.5);  
    14     for(int i=0;i<=m;i++){  
    15         int j=sqrt(n-i*i);  
    16         if(j*j+i*i==n&&j>=i){  
    17             ok=1;  
    18             printf("%d %d
    ",i,j);  
    19         }  
    20     }  
    21     if(!ok)  printf("No Solution
    ");  
    22     return 0;  
    23 }
  • 相关阅读:
    TP框架实现分页及条件查询
    tp框架连贯操作
    php查询
    php修改数据
    php增加数据处理
    php删除数据
    php怎么访问数据库
    php查询
    克隆及加载类
    php静态成员和接口
  • 原文地址:https://www.cnblogs.com/suishiguang/p/6390445.html
Copyright © 2011-2022 走看看