我本无心_


私信TA

用户名:huangbeiw

访问量:7214

签 名:

嗯嗯嗯嗯

等  级
排  名 1117
经  验 3073
参赛次数 0
文章发表 12
年  龄 22
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:思路很清楚:将整数先用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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区