| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2055 人关注过本帖
标题:[求助](求助)大虾来帮忙
只看楼主 加入收藏
wvqiaw
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-8-30
收藏
 问题点数:0 回复次数:41 
[求助](求助)大虾来帮忙

计算机使得计算的精度高到足以满足需要,比如,我们平时用到的圆周率,3.1415926535897932.......

已经有许多小程序可以计算几乎任意多位的圆周率。

此题的任务是:设计一个程序,该程序可以计算给定位数的圆周率。

要求:程序运行时,可输入要求的位数,然后程序开始计算,将计算结果保存在一个文本文件中。

比如,输入10000,则程序将计算10000位圆周率,并将结果放在p10000.txt文件中。其它类推。

位数范围在1与10000000之间。

评定标准:1、看结果的精确度;2、看运行的时间。

编程语言不限。 非常感谢 在线等待回贴

搜索更多相关主题的帖子: 计算 计算机 文本文件 圆周率 
2005-08-30 13:39
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
这是个算法题,还要知道计算PI 的公式,我不喜欢做这种题。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-08-30 19:05
wvqiaw
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-8-30
收藏
得分:0 
没有人会吗
π = 2 + 2/3 + 2/3*2/5 + 2/3*2/5*3/7 + ...



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*10;
      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];
  }
}

谁能把他转化成JAVA
2005-08-31 07:41
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
tempnetbar,
这道题就交给你了,不要不给我面子奥。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-08-31 08:25
wvqiaw
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-8-30
收藏
得分:0 
谢谢大哥 了  希望早日完成   555555  急需
2005-08-31 11:24
wvqiaw
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-8-30
收藏
得分:0 
斑竹 怎么都没有人做
2005-08-31 19:27
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 
斑竹大人最近比较忙啊,呵呵,这就给你看看,wait a minute~

相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2005-09-01 08:41
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 

基本上再现了你这个C++的函数,hoho,结果是否正确呢?不得而知 public class pi { public static void main(String args[]) { calcPI(); } public static void calcPI() { final int ARRSIZE=1010, DISPCNT=1000; //定义数组大小,显示位数 char[] x = new char[ARRSIZE]; char[] z = new char[ARRSIZE]; //x[0] x[1] . x[2] x[3] x[4] .... x[ARRSIZE-1] int a=1, b=3, c, d, Cnt=0; boolean Run = true; 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] = (char)(c % 10); d = c / 10; } //z/=b; d = 0; for(int i=0; i<ARRSIZE; i++) { c = z[i]+d*10; z[i] = (char)(c / b); d = c % b; } //x+=z; Run = false; for(int i=ARRSIZE-1; i>0; i--) { c = x[i] + z[i]; x[i] = (char)(c%10); x[i-1] += c/10; Run |= (z[i] > 0); } a++; b+=2; } System.out.print("计算了 " + Cnt + "次\r\n"); System.out.print("Pi=" + x[0] + x[1] + ".\r\n"); for(int i=0; i<DISPCNT; i++) { if(i>0 && ((i%100)==0)) System.out.print("\r\n"); System.out.print((int)x[i+2]); } } }


相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2005-09-01 09:15
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 
那个开头的一个心的符号就是ascii为3的符号,其实就是3。看起来结果是对的,呵呵

相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2005-09-01 09:17
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
汪精卫.......

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-09-01 09:20
快速回复:[求助](求助)大虾来帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020427 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved