Run ID:73801
提交时间:2024-05-19 17:36:19
#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 { //处理整数部分; ///cout << dian <<endl; 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]; //cout << a[i] << " " << endl; } // 处理小数部分 int k = 1; for(int i = dian+1; i < len; i++){ sum += pow(2, -k) * (s[i]-'0'); k++; } cout << sum; } return 0; }