早教吧 育儿知识 作业答案 考试题库 百科 知识分享

算法编程定义一个函数f(x)为x的最大的奇数影子,例9为18的最大奇数因子,如果x为奇数,X本身就为最大奇数因子,已知正整数N,计算sum(n)=f(1)+f(2)…………+f(n)n的范围为1---1000000000,不允许穷举;要

题目详情
算法编程
定义一个函数f(x)为x 的最大的奇数影子,例9为18的最大奇数因子,如果x为奇数,X本身就为最大奇数因子,已知正整数N,计算sum(n)=f(1)+f(2)…………+f(n)
n的范围为1---1000000000,不允许穷举;
要求计算高效,最好低于0.1(当N足够大时);求解 3Q
偶数的话不一定是一半、、、20的话是5.32的话是1.2的N次方的最大奇数因子都是1.其他的就是一直除2之后的最大的奇数了,
位运算? 没学过, 我自己思考一下怎么解决,如果可以的话附上代码,
▼优质解答
答案和解析
你这个要用位运算解决 具体的代码你给我点时间 我给你写 #include using namespace std;inline int add(int k){return ( k + 1 ) * ( k + 1 );}inline int get(int k,int l){int t;t = k >> l;t ...