题目描述:
读入一个十进制正整数,将其进行二进制表示,取其从右端开始的第4至7位,输出这一部分的10进制表示。
输入格式:
一个正整数a。
输出格式:
a从右端开始的4至7位的十进制表示(第7位作为个位,第4位是高位)。
样例输入:
217
样例输出:
13
提示:
这题,没必要转成二进制哦!
时间限制: 1000ms
空间限制: 32MB
(没必要?我偏不)
代码实现:
#include<bits/stdc++.h>
using namespace std;
string str;
int a,b[100001],len,c[101],lenc=1,s;
int main(){
cin>>a;
while(a){
b[++len]=a%2;
a/=2;
}
for(int i=3;i<=7;i++){
c[lenc++]=b[i];
}
for(int i=1;i<lenc;i++){
s+=c[i]*pow(2,lenc-i);
}
cout<<s/2;
return 0;
}