蓝桥杯 算法训练 6-2递归求二进制表示位数(c语言版详细注释)

试题 算法训练 6-2递归求二进制表示位数

                                                                                  蓝桥杯试题解答汇总链接

资源限制

       时间限制:1.0s 内存限制:256.0MB


问题描述

       
给定一个十进制整数,返回其对应的二进制数的位数。例如,输入十进制数9,其对应的二进制数是1001,因此位数是4。


样例输入

9

样例输出

4

数据规模与约定

输入数据中每一个数的范围。
例:输入在int表示范围内。

代码

#include<stdio.h>
int f(int n,int count){//count计算位数 
	if(n==0){//n==0时候返回值 
		return count;
	}
	return f(n>>1,count+1);//右位移计算 
}
int main(){
	int n;
	scanf("%d",&n);
	printf("%d",f(n,0));
	return 0;
}
发布了51 篇原创文章 · 获赞 58 · 访问量 4644

猜你喜欢

转载自blog.csdn.net/xyf0209/article/details/104262845