Easy Problem(西安电子科技大学第二节程序设计新生赛A)

Easy Problem

题目传送门
题目描述
构造一个无重复的只含有正奇数的数列,使得这个数列所有项之和不超过n。输出所能构造的数列长度的最大值。

输入描述:
多组数据,输入以EOF结尾(不超过1e5组)
每行一个n(1<=n<=1e9)

输出描述:
每行一个数表示构造数列的长度

示例
输入
4
9
10

输出
2
3
3
这个题我开始用的是创建一个以1为首项,2为公差的等差数列,但超时了T^T。
于是,我直接用等差数列前n项和公式推导出根号n取整后即为该数列的长度。

#include<stdio.h>
#include<math.h>
int main()
{
    long long int n,a;
    double m;
    while(scanf("%lld",&n)!=EOF)
    {
        m=sqrt(n);
        a=m;
        printf("%lld\n",a);
    }
    return 0;
}

没有第一时间想到这个方法的原因就是我的大脑还没有养成简化代码的习惯,以后要尽量练习这种思维方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值