zoukankan      html  css  js  c++  java
  • 网易2017秋招--2、优雅的点

    题目描述:
    小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方。小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他。
    例如:半径的平方如果为25
    优雅的点就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12个点。 
    输入描述:
    输入为一个整数,即为圆半径的平方,范围在32位int范围内。
     
     
    输出描述:
    输出为一个整数,即为优雅的点的个数
     
    输入例子:
    25
     
    输出例子:
    12
    思路:此题关键i*i+j*j==给定n,如果i和j都为整数即为优雅点
     1 #include <iostream>
     2 #include <math.h>
     3 using namespace std;
     4 int main()
     5 {
     6     int circle;
     7     int ans = 0;
     8     while(cin>>circle)
     9     {
    10         int r = sqrt(circle);//求半径
    11         for(int i =1;i<=r;i++)//i和j都从1开始,特殊情况(0,r)即为优雅点特殊处理
    12         {
    13             double j = sqrt((double)circle-i*i);//i*i+j*j==circle
    14             if(j>0 && j == (int)j)//当j为整数即为优雅点
    15             {
    16                 ans++;
    17             }
    18         }
    19         ans = ans * 4;//每个在第一象限的点在其他三个象限也有对应点
    20         if(r*r == circle)//处理(0,r)为优雅点的特殊情况
    21         {
    22             ans = ans + 4;
    23         }
    24         cout<<ans<<endl;
    25     }
    26     return 0;
    27 }
  • 相关阅读:
    ORACLE字符串函数
    Ubuntu14.04安装wineqq国际版
    phonegap学习笔记
    Android Studio 1.5.1
    CodeBlocks+Qt(MinGW)配置
    Java多线程之synchronized(五)
    Java多线程之synchronized(四)
    Java多线程之synchronized(三)
    Java多线程之synchronized(二)
    Java多线程之synchronized(一)
  • 原文地址:https://www.cnblogs.com/qqky/p/6795976.html
Copyright © 2011-2022 走看看