Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
73853 张江鹏 二进制小数转十进制 C++ Accepted 1 MS 276 KB 692 2024-05-19 18:08:20

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; }