1068: 二进制数
来源:互联网 发布:知行论坛 编辑:程序博客网 时间:2024/06/13 08:02
1068: 二进制数
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 4511 Solved: 3077
SubmitStatusWeb Board
Description
将一个二进制数,转换为对应的十进制数。
Input
输入一个二进制数,以回车结束。该二进制数为正数,长度不超过31。
Output
输出一个整数,为该二进制数对应的十进制数。
Sample Input
100000000001
Sample Output
2049
HINT
(1) 整数运算尽量避免pow之类的double类型函数,以免截断取整带来错误。
(2)可使用递推思想,充分利用中间结果。类似思想可参考秦九韶算法。秦九韶算法是中国南宋时期的数学家秦九韶提出的一种多项式简化算法。计算一次多项式f(x) = a0*xn + a1*x(n-1)+ ... + an 只需要n次乘法和n次加法。原理是一次多项式f(x)可写成如下加括号方式:f(x) =(( (a0*x + a1)*x + a2) * x + ... an-1) * x + an。自内向外去括号计算,只需要n次乘法和n次加法。
本题从高位到低位依次输出二进制数,对应多项式系数a0, a1,....,an, 而x的值为2。递推过程如下:
d = 0;
while( ch = getchar(), ch != '\n')
d = d * 2 + (ch - '0');
Source
****
#include<stdio.h>int main(void){ char ch; int d ; d=0; while(ch=getchar(), ch!='\n') d=d*2+(ch-'0'); printf("%d\n",d); return 0;}
阅读全文
0 0
- zzuli 1068《二进制数》
- 1068: 二进制数
- zzuli OJ 1068: 二进制数
- 二进制数
- 二进制数
- 郑轻OJ zzulioj 1068: 二进制数
- 二进制数字符串转化为二进制数
- 十进制数转二进制数
- 二进制数转十进制数
- 十进制数转二进制数
- 十进制数转二进制数
- 十进制数转为二进制数
- 定点数二进制表示
- 二进制数反转
- 计算二进制序列数
- 第一章 1 二进制数
- 二进制数反转
- 正负数二进制计算
- <c语言经典100例>c8 九九乘法表
- “java.net.BindException: Address already in use”错误
- java代码注释规范
- Scala之模式匹配
- ConcurrentHashMap01--(Happens-Before规则)
- 1068: 二进制数
- java基础学习总结——this关键字
- bzoj4517: [Sdoi2016]排列计数
- [bzoj4742][Usaco2016 Dec]Team Building
- [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:qqs' d
- 中国合伙人正能量语句
- Java开发达人必备的11个技术网站
- PAT乙级1056. 组合数的和(15)
- 用户鼠标点击屏幕一个链接后发生了什么