Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
149202 c13 十进制小数转二进制 C++ Wrong Answer 0 MS 272 KB 1211 2026-03-07 20:07:45

Tests(0/10):


Code:

#include<bits/stdc++.h> using namespace std; string s; double k;int l,ll;char a[33]; int p; double sum; void xjz(int o,double i){ if(o==s.size())return; sum+=(s[s.size()-o+p+1]-'0')*i; xjz(o+1,i/2.0); } void jz(int o,int i){ if(o==s.size())return; if(s[o]=='.'){xjz(o+1,0.5);return;} sum+=(s[p-o]-'0')*i; jz(o+1,i*2); } void xz(int o){ if(ll==0)return; a[o]=(int)ll*2+'0'; cout<<a[o]; ll=ll*2-a[o]; xz(o+1); } void z(int o){ if(l==0){for(int i=o-1;i>0;i--)cout<<a[i];if(ll){cout<<".";xz(o+1);return;}return;} if(ll){a[o]='.';for(int i=o-1;i>0;i--)cout<<a[i];cout<<".";xz(o+1);return;} a[o]=(int)l%2+'0'; l/=2; z(o+1); } int main(){ /*cin>>s; for(int i=0;i<s.size();i++)if(s[i]=='.'){p=i-1;break;}*/ //jz(0,1); /*double po=1; for(int k=p;k>=0;k--){sum+=(po*(s[k]-'0')); po*=2; }po=0.5; for(int k=p+2;k<s.size();k++){ sum+=(po*(s[k]-'0')); po/=2; }*/ /*int l=s.size(); for(int i=0,j=l-1;i<l&&i>=0;i++,j--)sum+=(s[j]-'0')*pow(2,i);*/ //cout<<sum<<"\n"; cin>>k; l=(int)k; ll=k-l; p=0; z(1); return 0; }


Run Info:

------Input------
98.69140625
------Answer-----
1100010.10110001
------Your output-----
1100010