二进制表示-LintCode
来源:互联网 发布:淘宝女装好店铺推荐 编辑:程序博客网 时间:2024/06/05 11:59
给定一个数将其转换为二进制(均用字符串表示),如果这个数的小数部分不能在 32 个字符之内来精确地表示,则返回 “ERROR”。
样例:
n = “3.72”, 返回 “ERROR”.
n = “3.5”, 返回 “11.1”.
#ifndef C180_H#define C180_H#include<iostream>#include<string>using namespace std;class Solution {public: /** *@param n: Given a decimal number that is passed in as a string *@return: A string */ string binaryRepresentation(string n) { // wirte your code here if (n.empty()) return NULL; int len = n.size(); int pos = 0; for (int i = 0; i < len; ++i) { if (n[i] == '.') { pos = i; break; } } string Integer = n.substr(0,pos); string Decimal = n.substr(pos + 1, len - 1 - pos); int size = Decimal.size(); long long intNum = stoll(Integer); long long DecNum = stoll(Decimal); double num = DecNum; for (int j = 1; j <= size; ++j) { num /= 10; } int count = 0; string sum; while (num != 0) { count++; num *= 2; if (num >= 1) { num -= 1; sum += "1"; } else { sum += "0"; } } if (count > 32) return "ERROR"; else { string str; if (intNum == 0) str= "0"; for (int i = intNum; i; i = i / 2) { str += (i % 2 ? "1" : "0"); } reverse(str.begin(), str.end()); if (sum.empty()) return str; return str + "." + sum; } }};#endif
阅读全文
0 0
- LintCode 二进制表示
- LintCode 二进制表示
- LintCode : 二进制表示
- LintCode 180-二进制表示
- LintCode : 二进制表示
- 二进制表示-LintCode
- [lintcode]二进制表示 ,Binary Representation
- lintcode 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示)。
- 二进制表示
- 二进制表示
- 二进制表示
- 二进制表示
- 单词表示数字-LintCode
- LintCode-二进制求和
- LIntCode-二进制求和
- 二进制求和(LintCode)
- lintcode ----二进制求和
- LintCode之二进制求和
- C语言实现正态分布或高斯分布
- hdu 1394 最小逆序数
- 系统与管理命令--终端类命令
- 博客园搬家到CSDN
- 深度学习——keras训练AutoEncoder模型
- 二进制表示-LintCode
- Matlab中plot函数参数解析
- 图论总结(8)最小生成树
- 学习Opencv2.4.9(三)---图像的基本运算
- 通过javascript获取HTML标签自定义属性
- [swift]读取svg图片为UIBezierPath,开心做动画
- 访问wsdl的接口
- meta标签
- python高阶进程1 --类