LX410 递归求1的个数 PTA 10分

题目描述

统计非负整数二进制展开中数位1的总数。如整数65 的二进制展开为00000000 00000000 00000000 00100001 ,数位1的总数为2。

要求使用递归函数完成,函数接口定义如下:

int count_one(unsigned long long n);

裁判测试程序样例:

#include

using namespace std;

int count_one(unsigned long long n);

int main() {

unsigned long long n;

cin>>n;

cout<

return 0;

}

/* 请在这里填写答案 */

输入格式

输入一个整数n , 题目保证n 不大于1018

输出格式

输出该整数二进制展开中数位1的总数。

样例 #1

样例输入 #1

441

样例输出 #1

6

提示

函数题,只需要完成函数定义,不需要写main等内容

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include
using namespace std;

int count_one(unsigned long long n) {
    if (n == 0) {
        return 0;
    } else {
        return (n & 1) + count_one(n >> 1);//采用递归
    }
}

你可能感兴趣的:(c++,算法,数据结构)