首页 > 试题广场 >

优雅的点

[编程题]优雅的点
  • 热度指数:36488 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方。小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他。
例如:半径的平方如果为25
优雅的点就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12个点。

输入描述:
输入为一个整数,即为圆半径的平方,范围在32位int范围内。


输出描述:
输出为一个整数,即为优雅的点的个数
示例1

输入

25

输出

12
头像 重生之我要当分子
发表于 2025-01-07 22:45:39
解题思路 计算圆上整点的方法: 先处理坐标轴上的点 从最大可能的 坐标开始向下遍历 检查每个 对应的 是否为整数 关键点 先处理 为完全平方数的情况 从大到小遍历可能的 值 利用对称性计数 代码 cpp java python #include <iostr 展开全文
头像 完全没头绪
发表于 2023-04-03 12:38:48
using System; using System.Collections; using System.Collections.Generic; public class Program { public static void Main() { string line; 展开全文
头像 Ⅲ_Dc
发表于 2022-03-05 13:53:23
//if(mp.find(N-it->first)!=mp.end()) //不是说没有访问map<int,bool> 的 map[i] ,map[i]就是false //双for超时了 ">#include<iostream> #include<map> 展开全文