时间限制: 1 Sec 内存限制:
128 MB
提交: 46 解决: 30
题目描述
对于一个十进制的数字x,将他转化为2进制,他的2进制将由0和1组成,求里面的最后一个1在第几位
输入
第一行输入T,代表T组数据,
接下来T行,每行输入一个X。
0<T<1e7
0<X<1e9
输出
输入x的2进制中最后一个1在第几位,
不存在输出0
样例输入
3 0 3 8
样例输出
0 2 1
#include<stdio.h> int main() { int n; scanf("%d",&n); while(n--) { //long long m; int m; int a[1000]; scanf("%d",&m); int i=0; while(m>0) { a[i++]=m%2; m/=2; } int sum=0; for(int j=0;j<i;j++) if(a[j]==0) { sum++; } else break; printf("%d\n",i-sum); } return 0; } /************************************************************** Problem: 1710 Language: C Result: 正确 Time:700 ms Memory:768 kb ****************************************************************/
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-12 16:19:27