牛客 XOR和(找规律)
发布日期:2021-07-01 03:34:59
浏览次数:2
分类:技术文章
本文共 1032 字,大约阅读时间需要 3 分钟。
文章目录
1. 题目
链接:
来源:牛客网牛牛最近学会了异或操作,于是他发现了一个函数 f ( x ) = x ⊕ ( x − 1 ) f(x)=x\oplus (x-1) f(x)=x⊕(x−1),现在牛牛给你一个数 n,他想知道 ∑ i = 1 n f ( i ) \sum_{i=1}^n f(i) ∑i=1nf(i) 的值是多少,请你告诉他。
示例1输入4返回值12备注:1≤n≤10^9
2. 解题
先算出 10 以内的 f(x)
i f(i) S(i)1 1 1 2 3 4 3 1 5 4 7 12 5 1 13 6 3 16 7 1 17 8 15 32
发现x奇数时, f ( x ) = 1 f(x) = 1 f(x)=1;
x偶数时, f ( x ) = 2 ∗ f ( x / 2 ) + 1 f(x) = 2*f(x/2)+1 f(x)=2∗f(x/2)+1 S u m ( n ) = n + 2 ∗ S u m ( n / 2 ) ; Sum(n) = n+2*Sum(n/2); Sum(n)=n+2∗Sum(n/2);class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param n int整型 * @return long长整型 */ unordered_mapm; long long Sum(int n) { // write code here if(n == 1) return 1; if(m.find(n) != m.end()) return m[n]; long long s = n+2*Sum(n/2); return m[n] = s; }};
我的CSDN
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
转载地址:https://michael.blog.csdn.net/article/details/111397239 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月22日 16时58分56秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
解决SHELL脚本中的export无法生效的问题【转】
2019-05-02
linux中的sh脚本语法【转】
2019-05-02
Linux 内核通用链表学习小结【转】
2019-05-02
区别数据结构中的堆栈与内存中的堆栈的个人总结【转】
2019-05-02
六、判断两个单向链表是否相交
2019-05-02
七、两个有序链表合并(递归方式)
2019-05-02
C++拷贝构造函数(深拷贝,浅拷贝)【转】
2019-05-02
C++ 内联函数 (讲解的TM真好)【转】
2019-05-02
什么时候需要定义拷贝构造函数【转】
2019-05-02
c++类的构造函数详解【转】
2019-05-02
C++中判断数据类型的函数【转】
2019-05-02
const在函数前与函数后的区别【转】
2019-05-02
C++中的mutable关键字【转】
2019-05-02
c++中冒号(:)和双冒号(::)的用法【转】
2019-05-02
python中各种下划线的含义
2019-05-02
《计算机视觉-一种现代方法(第2版)》读书笔记三:早期视觉(一幅图像)
2019-05-02
《计算机视觉-一种现代方法(第2版)》读书笔记六:应用之图像搜索和检索
2019-05-02
如何撰写高水平的学术论文
2019-05-02
谭浩强《C++面向对象程序设计》知识点总结
2019-05-02