题目描述
如果一个整数x是某个整数的平方, 我们就把整数x称为平方数。
妞妞最喜欢的数字就是平方数, 妞妞现在给你一个N, 妞妞希望你能帮助她找出不大于N的最大的平方数。
输入描述:
输入包括一行, 包括一个正整数N(1 <= N <= 10^9), 表示妞妞给的数字N。
输出描述:
输出一个整数, 即不大于N的最大的平方数。
示例1
输入
复制
10
输出
复制
9
思路:预处理。
代码:
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e9+5;
int f[100100]={0},d=0;
void init()
{
int n=sqrt(maxn);
for(int i=0;i<=n;i++)
{
f[d++]=i*i;
//printf("%d,",f[i]);
}
}
int main()
{
int N;
init();
while(scanf("%d",&N)!=EOF)
{
int ans=1;
for(int i=0;i<d;i++)
{
//printf("%d,",f[i]);
if(f[i]<=N)ans=f[i];
else break;
}
printf("%d\n",ans);
}
}
本文介绍了一个算法问题,目标是在给定的整数N范围内找到最大的平方数。通过预处理和遍历方法,有效地解决了妞妞的请求,展示了基础数学与编程结合的魅力。
1097

被折叠的 条评论
为什么被折叠?



