| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 73812 | 邓昊源 | 二进制小数转十进制 | C++ | Wrong Answer | 1 MS | 280 KB | 717 | 2024-05-19 17:45:37 |
#include <bits/stdc++.h> using namespace std; int main (){ string s; cin >> s; int l = s.size(); int d = -1; for(int i = 0;i < l;i++){ if(s[i] = '.'){ d = i; break; } } double sum = 0; if(d == -1){ int a[l]; int j = 0; for(int i = l-1;i >= 0; i--){ a[j] = s[i] - '0'; j++; } for(int i = 0;i < l;i++){ sum += pow(2,i) * a[i]; } cout << sum; return 0; }else{ int a[d]; int j = 0; for(int i = d-1;i >= 0; i--){ a[j] = s[i] - '0'; j++; } for(int i = 0;i < d;i++){ sum += pow(2,i) * a[i]; } int k = 1; for(int i = d + 1;i < l; i++){ sum += pow(2,-k) * (s[i]-'0'); k++; } cout << sum; } return 0; }
------Input------
0.111
------Answer-----
0.875
------Your output-----
-0.5625