链接:https://ac.nowcoder.com/acm/contest/316/A
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld
题目描述
构造一个无重复的只含有正奇数的数列,使得这个数列所有项之和不超过n。输出所能构造的数列长度的最大值。
输入描述:
多组数据,输入以EOF结尾(不超过1e5组) 每行一个n(1<=n<=1e9)
输出描述:
每行一个数表示构造数列的长度
示例1
输入
4 9 10
输出
2 3 3
题解:暴力去解肯定超时,这就需要我们都是正奇数,我们就可以利用等差数列的求和来求即可
公式为(2*n-1+1)*n/2<=输入的数,那我们就可以求出n的最大整数值为输入值的算术平方根
代码:
#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
int sum,s;
while(scanf("%d",&n)!=EOF)
{
s=sqrt(n);
printf("%d
",s);
}
return 0;
}