本文共 524 字,大约阅读时间需要 1 分钟。
给定L,R。统计[L,R]区间内的所有数在二进制下包含的“1”的个数之和。
如5的二进制为101,包含2个“1”。 输入格式 第一行包含2个数L,R 输出格式 一个数S,表示[L,R]区间内的所有数在二进制下包含的“1”的个数之和。 样例输入 2 3 样例输出 3 数据规模和约定 L<=R<=100000;简单题,我的想法是用一个函数将一个十进制数转换成二进制数,再用一个函数判断这个二进制数中有多少个1,定义全局变量进行累加。
代码呈上:
#includeint sum=0;int len;void fun(int a[1000],int len){ int i=0; for(i=0;i 0) { a[i]=n%2; n/=2; i++; } fun(a,i);}int main(){ int L,R; scanf("%d %d",&L,&R); int i; for(i=L;i<=R;i++) { change(i); } printf("%d",sum); return 0;}
运行示例
转载地址:http://kirzi.baihongyu.com/