Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
103920 | 万隽宇 | 二进制小数转十进制 | C++ | Accepted | 1 MS | 272 KB | 561 | 2025-01-02 18:54:13 |
#include<iostream> // cin\cout\endl #include<cstdio> //scanf()\printf() #include<cstring> // strcpy()\strcat()\strcmp()\strlen()\memset() #include<cmath> //sqrt()\pow()\abs()\ceil()\floor()\max()\min() using namespace std; int main(){ char n[65]; cin>>n; int j=strlen(n),b=0; double a=0.0,c=1; while(n[b]!='.'&&b<j)b++; for(int k=b-1;k>=0;k--){ a+=(n[k]-'0')*c; c=c*2; } c=2.0; for(int i=b+1;i<j;i++){ a+=(n[i]-'0')/c; c=c*2; } cout<<a; return 0; }