Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
73820 杨莹斌 二进制小数转十进制 C++ Accepted 1 MS 280 KB 769 2024-05-19 17:49:30

Tests(10/10):


Code:

#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,-k)*(s[i] - '0'); k++; } cout << sum; } return 0; }