题目:
小明同学在学习了不同进制之后用数字做起了游戏。小明同学定义了二个函数f(x)和g(x),f(x)求解x的十进制表示的各位数字之和,g(x) 求解x的二进制表示的各位数字之和,例如:f(123)=1+2+3=6; 123的二进制表示为:1111011,g(123)=1+1+1+1+0+1+1=6。小明同学发现一些整数满足f(x)=g(x),如:f(123)=g(123),他把这种数称为幸运数,现在他想知道不大于n的幸运数有多少个?请设计一个递归算法求解该问题并分析其时间复杂度。
首先,要写出一个函数,实现的功能是将一个数在任意进制下,对每一位求和。
想到之前C语言的第一节课上老师留的十进制转二进制的作业,具体如下