zoukankan      html  css  js  c++  java
  • 【转】看起来很神奇的高精度开方

    Not quite understand,but amazing。。。。


     1 #include <cstdio>
     2 #include <iostream>
     3 #include <cstring>
     4 using namespace std;
     5  
     6 int l;
     7  
     8 int work(int o,char *O,int I)
     9 {
    10     char c,*D = O;
    11     if (o > 0)
    12     {
    13         for(l = 0; D[l]; D[l++] -= 10)
    14         {
    15             D[l++] -= 120;
    16             D[l] -= 110;
    17             while (!work(0,O,l))
    18                 D[l] += 20;
    19             putchar((D[l]+1032)/20) ;
    20         }
    21         putchar(10);
    22     }
    23     else
    24     {
    25         c = o+(D[I]+82)%10-(I>l/2)*(D[I-l+I]+72)/10-9;
    26         D[I] += (I < 0)?0:!(o = work(c/10,O,I-1))*((c+999)%10-(D[I]+92)%10);
    27     }
    28     return o;
    29 }
    30  
    31 int main()
    32 {
    33     char s[1200];
    34     s[0] = '0';
    35     scanf("%s",s+1);
    36     if(strlen(s)%2 == 1) work(2,s+1,0);
    37     else    work(2,s,0);
    38     return 0;
    39 }


  • 相关阅读:
    1028 人口普查 (20分)
    1027 打印沙漏 (20分)
    1026 程序运行时间 (15分)
    1025 反转链表 (25分)
    1024 科学计数法 (20分)
    1023 组个最小数 (20分)
    1022 D进制的A+B (20分)
    1021 个位数统计 (15分)
    1020 月饼 (25分)
    1019 数字黑洞 (20分)
  • 原文地址:https://www.cnblogs.com/pony1993/p/2631176.html
Copyright © 2011-2022 走看看