好题。其实就是模拟IEEE754的格式,不过要注意的是,这里用的32位是float,用double就不对了。
代码如下:
1 #include <cstdio> 2 #include <cmath> 3 #include <iostream> 4 5 using namespace std; 6 7 int main() { 8 float x; 9 while (cin >> x) { 10 int cnt = 0; 11 while (fabs(x) >= 2.0) x /= 2.0, cnt++; 12 while (fabs(x) < 1.0) x *= 2.0, cnt--; 13 printf("%d %.6f ", cnt, x); 14 } 15 return 0; 16 }
——written by Lyon