hiho一下 第157周 二进制小数
来源:互联网 发布:金字塔软件官网 编辑:程序博客网 时间:2024/06/08 14:16
题意
给定一个十进制小数X(X一定是以”0.”开头,小数部分不超过100位),判断X的二进制表示是否是有限确定的。
例如0.5的二进制表示是0.1,0.75的二进制表示是0.11,0.3没有确定有限的二进制表示。
解题思路
我们用数组模拟十进制小数转二进制小数的过程——乘二减一。
假设X的小数部分有N位,如果我们经过N次操作结果仍不为0,那么X就不能表示成有限位数的二进制小数。
参考代码
#include <iostream>#include <string.h>using namespace std;char str[200];int ans[200];void mul(int len){ int k=0; for (int i=len-1;i>=0;i--){ if (i==1) continue; int tmp=k+(str[i]-'0')*2; k=tmp/10; str[i]=tmp%10+'0'; }}bool check(int len){ int cnt=0; for (int i=0;i<len;i++){ if (i==1) continue; if (str[i]-'0'!=0){ cnt++; break; } } if (cnt) return 0; return 1;}int main(){ int t; cin>>t; while (t--){ cin>>str; int len=strlen(str); int k=0,flag=0; while (check(len)==0){ mul(len); ans[k++]=str[0]-'0'; str[0]='0'; if (k>len){ flag=1; break; } } if (flag) cout<<"NO"<<endl; else{ cout<<"0."; for (int i=0;i<k;i++) cout<<ans[i]; cout<<endl; } } return 0;}
阅读全文
0 0
- hiho一下 第157周 二进制小数
- hiho一下 第157周 二进制小数
- hiho一下 第157周 二进制小数 (二进制)
- hiho一下 第157周/1311 : 二进制小数
- hiho一下 第158周 非法二进制数
- hiho一下 第158周 非法二进制数
- hiho一下 第158周 非法二进制数 (dp)
- hiho一下 第158周/1318 : 非法二进制数
- hiho一下 第168周 扩展二进制数
- hiho一下第168周 扩展二进制数
- hiho一下 第168周 扩展二进制数
- 扩展二进制数 hiho一下第168周
- hiho一下 第143周 hiho密码
- hiho一下 第141周
- hiho一下 第139周
- hiho一下第143周
- hiho一下 第145周
- hiho一下 第167周
- 高效的加载图片整理
- 使用Hibernate 5.0、4.0、3.0 createSQLQuery执行原生Sql语句 遇到问题及解决办法集锦
- [莫比乌斯反演+杜教筛] 51Nod1237: 最大公约数之和 V3
- Hadoop中yarn的运行机制
- Android简单封装带TopBar的Activity
- hiho一下 第157周 二进制小数
- 版本管理之gitlab实践教程:基础篇(2)
- spring配置数据源几种方式
- SynchronousQueue 实现 二
- Servlet
- 分治法:二分搜索
- A Plug for UNIX POJ
- linux udp program
- HDU