Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
123399 | 黄睿杰 | 二进制小数转十进制 | C++ | Accepted | 1 MS | 280 KB | 457 | 2025-06-29 17:36:53 |
#include<bits/stdc++.h> using namespace std; char a[1000],b[1000]; int main(){ double s=0; int n; cin>>a; int l=strlen(a); for(int i=0;i<l;i++){ if(a[i]=='.'){ n=i; break; } } int m=0; for(int i=n+1;i<l;i++){ m++; if(a[i]=='1') s+=1/(pow(2,m)); } for(int i=0;i<n;i++) b[i]=a[i]; for(int i=0,j=n-1;i<n,j>=0;i++,j--) a[i]=b[j]; for(int i=0;i<n;i++){ if(a[i]=='1') s+=pow(2,i); } cout<<s; return 0; }