| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 62901 | 彭林江 | 十进制小数转二进制 | C++ | Wrong Answer | 1 MS | 268 KB | 676 | 2023-12-30 15:24:42 |
#include<bits/stdc++.h> using namespace std; int main(){ double n; cin >> n; if(n == 0){ cout << 0; return 0; } int z = n; // 得到整数 double x = n-z; // 得到小数 // 第一步:处理整数 int len = 0; int yu[32]; while(z != 0){ // 只要整数不为0,除二取余 yu[len++] = z % 2; z /= 2; } // 然后再将得到的余数逆序输出 for(int i = len - 1; i >= 0; i--){ cout << yu[i]; } // 第二步:处理小数 if(x == 0){ return 0; } else{ cout << "."; } for(int i = 0; i < 9; i++){ x *= 2; int xz = x; cout <<xz; x -= xz; if(x == 0){ break; } } return 0; }
------Input------
0.125
------Answer-----
0.001
------Your output-----
.001