毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

圆周率PIπ精确到小数点后1000位

更新时间:2009-10-26:  来源:毕业论文

圆周率PIπ精确到小数点后1000位
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  const ARRSIZE=1010, DISPCNT=1000; //定义数组大小,显示位数
  char x[ARRSIZE], z[ARRSIZE]; //x[0] x[1] . x[2] x[3] x[4] .... x[ARRSIZE-1]
  int a=1, b=3, c, d, Run=1, Cnt=0;

  memset(x,0,ARRSIZE);
  memset(z,0,ARRSIZE);

  x[1] = 2;
  z[1] = 2;

  while(Run && (++Cnt<200000000))
  {
    //z*=a;
    d = 0;
    for(int i=ARRSIZE-1; i>0; i--)
    {
      c = z[i]*a + d;
      z[i] = c % 10;
      d = c / 10;
    }
    //z/=b;
    d = 0;
    for(int i=0; i<ARRSIZE; i++)
    {
      c = z[i]+d*www.youerw.com;
      z[i] = c / b;
      d = c % b;
    }
    //x+=z;
    Run = 0;
    for(int i=ARRSIZE-1; i>0; i--)
    {
      c = x[i] + z[i];
      x[i] = c%10;
      x[i-1] += c/10;
      Run |= z[i];
    }
    a++;
    b+=2;
  }
  Memo1->Text = AnsiString().sprintf("计算了 %d 次\r\n",Cnt);
  Memo1->Text = Memo1->Text + AnsiString().sprintf("Pi=%d%d.\r\n", x[0],x[1]);
  for(int i=0; i<DISPCNT; i++)
  {
    if(i && ((i%100)==0))
    Memo1->Text = Memo1->Text + "\r\n";
    Memo1->Text = Memo1->Text + (int)x[i+2];
  }
}570

圆周率PIπ精确到小数点后1000位下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。