📄 1117.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 1117 on 2005-10-24 at 15:43:55 */
#include <cstdio>
#include <cstring>
const int MAX = 64;
const int C = 125;
class LongDouble {
public:
int n[MAX];
void init() {
memset(n, 0, sizeof(n));
}
void muti(const int k, const int m) {
int i, j, p[MAX] = {0}, l;
p[k] = m;
for(i = 0; i <= k; i++) {
for(j = 0; j <= k; j++) {
p[j] *= C;
if(p[j] >= 1000) {
p[j-1] += p[j] / 1000;
p[j] %= 1000;
}
}
}
for(i = 0; i <= k; i++) {
n[i] += p[i];
for(l = 0; n[i-l] >= 1000; l++) {
n[i-l-1] += n[i-l] / 1000;
n[i-l] %= 1000;
}
}
}
void print(const int l) {
int i;
printf("0.");
for(i = 0; i < l; i++) {
if(n[i] >= 10 && n[i] < 100) {
printf("0");
} else if(n[i] < 10) {
printf("00");
}
if(i == l-1) {
while(n[i] % 10 == 0) {
n[i] /= 10;
}
}
printf("%d", n[i]);
}
printf(" [10]\n");
}
};
int main()
{
LongDouble longd;
char line[MAX];
int len, i;
while(gets(line) != NULL) {
if(line[0] == 1) {
printf("1 [8] = 1 [10]\n");
} else {
longd.init();
len = strlen(line);
for(i = 2; i < len; i++) {
longd.muti(i - 2, line[i] - '0');
}
printf("%s [8] = ", line);
longd.print(len-2);
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -