| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 73810 | 杨莹斌 | 二进制小数转十进制 | C++ | Time Limit Exceeded | 1000 MS | 268 KB | 765 | 2024-05-19 17:43:20 |
#include<bits/stdc++.h> using namespace std; int main(){ string s; cin >> s; int len = s.size(); int dian = -1; for(int i = 0;i < len;i++){ if(s[i] == '.'){ dian = i; break; } } double sum = 0; if(dian == -1){ int a[len]; int j = 0; for(int i = len-1;i >= 0;i--){ a[j] = s[i] - '0'; j++; } for(int i = 0;i < len;i++){ sum += pow(2,i)*a[i]; } cout<<sum; return 0; }else{ int a[dian]; int j = 0; for(int i = dian-1;i >= 0;i++){ a[j] = s[i] - '0'; j++; } for(int i = 0;i < dian;i++){ sum += pow(2,i)*a[i]; } int k = 1; for(int i = dian + 1;i < len;i++){ sum += pow(2,-(i - k))*(s[i] - '0'); k++; } cout << sum; } return 0; }