7月22日:字节笔试题:给定一个正整数n,求1到n所有正整数的二进制表示中1的个数和(leetcode上的原题,略有改动)参考:https://leetcode-cn.com/problems/1nzheng-shu-zhong-1chu-xian-de-ci-shu-lcof/solution/mian-shi-ti-43-1n-zheng-shu-zhong-1-chu-xian-de-2/内心慌乱,当场未能想出来,如何修改~想过后:来补一补。class Solution: def countDigitOne(self, n) : digit, res = 1, 0 high, cur, low = n // 2, n % 2, 0 while high != 0 or cur != 0: if cur == 0: res += high * digit else: res += high * digit + low + 1 low += cur * digit cur = high % 2 high //= 2 digit *= 2 return resif __name__ == '__main__': n = 5 sol = Solution() end = sol.countDigitOne(n) print(end)