1710: 最后一个1 (进制转换变形)
2015-08-25 20:41
239 查看
1710: 最后一个1
时间限制: 1 Sec 内存限制: 128 MB提交: 59 解决: 35
[提交][状态][讨论版]
题目描述
对于一个十进制的数字x,将他转化为2进制,他的2进制将由0和1组成,求里面的最后一个1在第几位输入
第一行输入T,代表T组数据,接下来T行,每行输入一个X。
0<T<1e7
0<X<1e9
输出
输入x的2进制中最后一个1在第几位,不存在输出0
样例输入
30
3
8
样例输出
02
1
#include<stdio.h> #include<string.h> int main(){ int t,n,m,i,j; scanf("%d",&t); while(t--) { scanf("%d",&n); m=n; int num=0,sum=0; while(m%2==0&&m) { m/=2; num++; } m=n; while(m) { m/=2; sum++; } printf("%d\n",sum-num); } return 0; }
//这个虽然过了,但耗时是上一种的三倍 #include<stdio.h> #include<string.h> int a[1110]; int b[1110]; int main(){ int t; int n; int m,j; scanf("%d",&t); while(t--) { scanf("%d",&n); if(n==0) printf("0\n"); else { int i=1; while(n) { a[i]=n%2; n/=2; i++; } int k=1; for(j=i-1;j>=1;j--) b[k++]=a[j]; for(i=1;i<k;i++) if(b[i]==1) m=i; printf("%d\n",m); } } return 0; }
相关文章推荐
- 学习IOS中
- bzoj 3224: Tyvj 1728 普通平衡树 treap
- Paths on a Grid(POJ--1942
- 多线程编程并发解决之道-线程锁技术
- 最后一个一
- java与js利用隐藏标签传参数
- TControl.WMLButtonUp的inherited的作用——是为了给子类控件新的处理消息的机会
- 股市点评:为啥大多数散户必定亏钱?——心理学层面的分析
- LeetCode(36)Valid Sudoku
- awk命令格式
- 单源最短路径算法的MapReduce实现(Metis版本)
- 1069. The Black Hole of Numbers (20)纯模拟题,然跟
- 【转】使用 C++ 处理 JSON 数据交换格式
- Android的重要控件ListView的诸多问题处理方案
- LwIP学习笔记——STM32 ENC28J60移植与入门
- LeetCode(36)Valid Sudoku
- 决策树--c4.5
- iOS 时间戳转换为时间
- 气泡,归并,插入,快速,选择排序java实现
- 安卓虚拟机启动后报错: 类似 SDK Manager] Error: Error parsing .....devices.xml 解决方案