#include <stdio.h>
#include <stdlib.h>
void doubleDecimal(char * decimal)
{
char buffer[256] = "";
char c;
unsigned char d, carry = 0;
int i = 0;
while (c = decimal[i])
{
d = 2 * (c - '0') + carry;
buffer[i] = (d % 10) + '0';
carry = d / 10;
i++;
}
if (carry > 0)
buffer[i++] = (carry % 10) + '0';
buffer[i] = '\0';
}
void reverse(char * str)
{
int i = 0;
while (j > i)
{
char tmp = str[i];
str[i] = str[j];
str[j] = tmp;
i++;
j--;
}
}
int main(void)
{
char decimal[256] = "1";
int i;
for (i = 0; i < 100; i++)
doubleDecimal(decimal);
reverse(decimal);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnZvaWQgZG91YmxlRGVjaW1hbChjaGFyICogZGVjaW1hbCkKewogICAgY2hhciBidWZmZXJbMjU2XSA9ICIiOwogICAgY2hhciBjOwogICAgdW5zaWduZWQgY2hhciBkLCBjYXJyeSA9IDA7CiAgICBpbnQgaSA9IDA7CgogICAgd2hpbGUgKGMgPSBkZWNpbWFsW2ldKQogICAgewogICAgICAgIGQgPSAyICogKGMgLSAnMCcpICsgY2Fycnk7CiAgICAgICAgYnVmZmVyW2ldID0gKGQgJSAxMCkgKyAnMCc7CiAgICAgICAgY2FycnkgPSBkIC8gMTA7CiAgICAgICAgaSsrOwogICAgfQoKICAgIGlmIChjYXJyeSA+IDApCiAgICAgICAgYnVmZmVyW2krK10gPSAoY2FycnkgJSAxMCkgKyAnMCc7CgogICAgYnVmZmVyW2ldID0gJ1wwJzsKICAgIHN0cm5jcHkoZGVjaW1hbCwgYnVmZmVyLCAyNTYpOwp9Cgp2b2lkIHJldmVyc2UoY2hhciAqIHN0cikKewogICAgaW50IGkgPSAwOwogICAgaW50IGogPSBzdHJsZW4oc3RyKSAtIDE7CgogICAgd2hpbGUgKGogPiBpKQogICAgewogICAgICAgIGNoYXIgdG1wID0gc3RyW2ldOwogICAgICAgIHN0cltpXSA9IHN0cltqXTsKICAgICAgICBzdHJbal0gPSB0bXA7CgogICAgICAgIGkrKzsKICAgICAgICBqLS07CiAgICB9Cn0KCmludCBtYWluKHZvaWQpCnsKICAgIGNoYXIgZGVjaW1hbFsyNTZdID0gIjEiOwogICAgaW50IGk7CgogICAgZm9yIChpID0gMDsgaSA8IDEwMDsgaSsrKQogICAgICAgIGRvdWJsZURlY2ltYWwoZGVjaW1hbCk7CgogICAgcmV2ZXJzZShkZWNpbWFsKTsKICAgIHByaW50ZigiJXMiLCBkZWNpbWFsKTsKICAgIAogICAgcmV0dXJuIDA7Cn0=