Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
110563 刘济玮 二进制小数转十进制 C++ Wrong Answer 1 MS 276 KB 642 2025-02-22 12:16:43

Tests(0/10):


Code:

#include <bits/stdc++.h> using namespace std; string s; int xsd=-1; int a[64]; int main() { cin>>s; int n=s.size(); for(int i=0; i<n; i++) { if(s[i]=='.') { xsd==i; break; } } int j=0; if(xsd==-1) { for(int i=n-1; i>=0; i--) { a[j]=s[i]-48; j++; } int ans=0; for(int i=0; i<n; i++) { ans=ans+pow(2,i)*a[i]; } cout<<ans; } else { for(int i=xsd-1;i>=0;i--){ a[j]=s[i]-48; j++; } double ans=0; for(int i=0; i<xsd; i++) { ans=ans+pow(2,i)*a[i]; } for(int i=xsd+1; i<n; i++) { ans+=pow(2,-(i-xsd))*(s[i]-48); } cout<<ans; } return 0; }


Run Info:

------Input------
0.111
------Answer-----
0.875
------Your output-----
-9