博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数求值(swust oj0274)
阅读量:5314 次
发布时间:2019-06-14

本文共 856 字,大约阅读时间需要 2 分钟。

函数求值(0274)

Time limit(ms): 1000
Memory limit(kb): 65535
Submission: 1767
Accepted: 324
Accepted

14级卓越班选拔D 15级卓越班选拔D 16级卓越班选拔D

定义函数g(n)为n最大的奇数因子。 求f(n)=g(1)+g(2)+g(3)+…+g(n)。

Description

有多组测试数据(不超过50)。 每组数据一个整数n(0 < n <= 10^8)。

Input

输出对应的f(n),每组数据占一行。

Output

1
2
3
4
5
1
2
4
7
 
Sample Input

1
2
3
4
5
1
2
6
21
 
Sample Output

 
 
//等差数列公式推导 当m为奇数时  A1 = 1; d=2; An=m; 则S=(An+1)(An+1)/4;
//这道题的思路就是 将 1—n 的奇数全部加起来后   剩下的偶数集体除以2 形成一个新的 数列 
比如F( 1 2 3 4 5 6 7 8 9 10)
等于S(1+3+5+7+9) + F(2 ,4 ,6 ,8 ,10)
等于(9+1)*(9+1)/4   +  F(1,2,3,4,5)
.......
...
 
#include
#define LL long longusing namespace std;LL n,a;LL fun(const LL x){ if(x==0) return 0; if(x%2==1) return (x+1)*(x+1)/4+fun(x/2); else return x*x/4+fun(x/2);}int main(){ while(cin>>n) { cout<
<

 

转载于:https://www.cnblogs.com/Swust-lyon/p/6703399.html

你可能感兴趣的文章
Mac---------三指拖移
查看>>
字符串类型的相互转换
查看>>
HTTP状态码
查看>>
iOS如何过滤掉文本中特殊字符
查看>>
基础学习:C#中float的取值范围和精度
查看>>
MongoDB-CRUD
查看>>
javaagent 简介
查看>>
python升级安装后的yum的修复
查看>>
Vim配置Node.js开发工具
查看>>
web前端面试题2017
查看>>
ELMAH——可插拔错误日志工具
查看>>
MySQL学习笔记(四)
查看>>
【Crash Course Psychology】2. Research & Experimentation笔记
查看>>
两数和
查看>>
移动设备和SharePoint 2013 - 第3部分:推送通知
查看>>
SOPC Builder中SystemID
查看>>
MySQL数据库备份工具mysqldump的使用(转)
查看>>
NTP服务器配置
查看>>
【转】OO无双的blocking/non-blocking执行时刻
查看>>
ul li剧中对齐
查看>>