繁体   English   中英

在 fibonacci(1) 到 fibonacci(N) 的二进制表示中查找 1 的个数

[英]Find number of 1's in binary representation of fibonacci(1) to fibonacci(N)

给定一个数字 N,计算 fibonacci(1) 到 fibonacci(N)。 将这 N 个数字中的每一个转换为二进制并将它们一起转换为 append。 我们必须返回此最终字符串中 1 的数量。

我的想法:
一种直接的方法是为每个数字计算 Fibonacci(i),我将其转换为二进制并计算其中 1 的个数,然后求和 i=1 到 N。
有没有更有效的方法来做到这一点?

初始计数 = 2(因为二进制 1 和 2 中的 1 之和各为 1)

将 i 从 3 迭代到 N:if(i % 2 == 0) inc count by 2 else inc count by 1

示例:斐波那契的第 5 项是 8(如果您将斐波那契数列视为 1,2,3,5,8...如果它是 1,1,2,3,5 那么您必须增加另一个计数1). 对于 1 -> 1、2 -> 10、3 -> 11、5 -> 101、8 -> 1000。假设我们已将其附加为字符串 (110111011000),总数为 7。如果从 3 迭代到 5 计数(2 + 2 + 2 + 1 = 7)。 如果您想强制使用字符串,那么我想是的,您可以按照您所说的那样通过迭代在字符串中添加 1 的数量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM