fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void doubleDecimal(char * decimal)
  5. {
  6. char buffer[256] = "";
  7. char c;
  8. unsigned char d, carry = 0;
  9. int i = 0;
  10.  
  11. while (c = decimal[i])
  12. {
  13. d = 2 * (c - '0') + carry;
  14. buffer[i] = (d % 10) + '0';
  15. carry = d / 10;
  16. i++;
  17. }
  18.  
  19. if (carry > 0)
  20. buffer[i++] = (carry % 10) + '0';
  21.  
  22. buffer[i] = '\0';
  23. strncpy(decimal, buffer, 256);
  24. }
  25.  
  26. void reverse(char * str)
  27. {
  28. int i = 0;
  29. int j = strlen(str) - 1;
  30.  
  31. while (j > i)
  32. {
  33. char tmp = str[i];
  34. str[i] = str[j];
  35. str[j] = tmp;
  36.  
  37. i++;
  38. j--;
  39. }
  40. }
  41.  
  42. int main(void)
  43. {
  44. char decimal[256] = "1";
  45. int i;
  46.  
  47. for (i = 0; i < 100; i++)
  48. doubleDecimal(decimal);
  49.  
  50. reverse(decimal);
  51. printf("%s", decimal);
  52.  
  53. return 0;
  54. }
Success #stdin #stdout 0.01s 1676KB
stdin
Standard input is empty
stdout
1267650600228229401496703205376