解题思路:思路很清楚:将整数先用2进制表示,再将下标0~(n1-1),(n2+1)~32清零,然后整个数组转换为10进制
注意事项:pow()函数要求结果和参数都是double型
参考代码:
#include<stdio.h>
#include<math.h>
int main()
{
int value,i,j,length,n1,n2;
double m=0,sum=0;
int bit1[32]={0};
scanf("%d %d %d",&value,&n1,&n2);
i=0;
do{
bit1[i++]=value%2;
value/=2;
}while(value>0);
for(i=0;i<n1;i++)bit1[i]=0;
for(i=n2+1;i<=32;i++)bit1[i]=0;
m=0,sum=0;
for(j=0;j<=32;j++,m++)
{
sum+=bit1[j]*pow(2.0,m);
}
printf("%.0lf\n",sum);
return 0;
}
0.0分
0 人评分
震宇大神的杀毒软件 (C++代码)浏览:1110 |
C二级辅导-公约公倍 (C语言代码)浏览:1508 |
C语言训练-大、小写问题 (C语言代码)浏览:2349 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:994 |
Wu-求圆的面积 (C++代码)浏览:1883 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:697 |
用筛法求之N内的素数。 (C语言代码)浏览:646 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1478 |
陈教主的三角形 (C语言代码)浏览:1140 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:401 |