当前位置: 首页 > wzjs >正文

地方旅游网站开发莱芜网站设计

地方旅游网站开发,莱芜网站设计,登录注册入口,2023年度最火关键词介绍说明 32位整数的计算机可以表示整数的范围近似为-20亿到+20亿。在这个范围内操作一般不会出现问题, 但是有的应用程序可能需要使用超出上述范围的整数。 C可以满足这个需求,创建功能强大的新的数据类型。 根据后缀, 定义一个大…

介绍说明

32位整数的计算机可以表示整数的范围近似为-20亿到+20亿。在这个范围内操作一般不会出现问题,
但是有的应用程序可能需要使用超出上述范围的整数。 C++可以满足这个需求,创建功能强大的新的数据类型。 根据后缀, 定义一个大整数类,
实现大整数的加、减、乘、除、幂、输出重载等,并能去计算pi的值。 输入一个整数n, 输出圆周率的前n位数字(不包含小数点) 样例输入 3
样例输入 314 样例输入 1000 样例输出
314159265358979323846264338327950288419716939937510582097494459230781640
62862089986280348253421170679821480865132823066470938446095505822317253594081284…

运行截图

代码运行截图

完整代码


#include <iostream>class TeamWorkBigInt
{
private:static const int digits = 10000;short integer[digits];
public:int sign = 1;TeamWorkBigInt(long = 0); // 构造friend TeamWorkBigInt operator+(const TeamWorkBigInt&, const TeamWorkBigInt&);//两个大数相加TeamWorkBigInt operator+(int) const;//大数加intTeamWorkBigInt operator-(const TeamWorkBigInt&) const;int operator > (const TeamWorkBigInt&) const;int operator>=(const TeamWorkBigInt& op2) const;int operator==(const TeamWorkBigInt& op2) const;TeamWorkBigInt operator * (const TeamWorkBigInt&) const;TeamWorkBigInt operator * (int) const;TeamWorkBigInt operator / (int);TeamWorkBigInt operator / (const TeamWorkBigInt&);TeamWorkBigInt& operator = (int);TeamWorkBigInt& operator /= (int);friend  TeamWorkBigInt pow(TeamWorkBigInt a, int b);int getLength() const;explicit TeamWorkBigInt(int i);TeamWorkBigInt& operator+=(const TeamWorkBigInt& a);friend std::ostream& operator<<(std::ostream&, const TeamWorkBigInt&);};TeamWorkBigInt::TeamWorkBigInt(long value)
{for (short& i : integer)i = 0;int i = 0;while (value != 0){integer[i] = value % 10;value /= 10;i++;}
}std::ostream& operator<<(std::ostream& os, const TeamWorkBigInt& bigInt) {int length = bigInt.getLength();for (int i = length - 1; i >= 0; --i) {os << bigInt.integer[i];}return os;
}int TeamWorkBigInt::getLength() const {int length = 0;// 从最高位开始向低位检查,找出有效的数值位  for (int i = digits - 1; i >= 0; --i) {if (integer[i] != 0) {length = i + 1; // 有效位数为最后一个非零位的索引 + 1  break;}}return length; // 返回有效位数  
}TeamWorkBigInt operator+(const TeamWorkBigInt& op2, const TeamWorkBigInt& op3)
{if (op2.sign == -1 && op3.sign == -1 || op2.sign == 1 && op3.sign == 1){TeamWorkBigInt temp;int carry = 0;for (int i = 0; i < TeamWorkBigInt::digits; i++){temp.integer[i] = op2.integer[i] + op3.integer[i] + carry;if (temp.integer[i] > 9){temp.integer[i] -= 10;carry = 1;}elsecarry = 0;}return temp;}else if (op2 > op3){TeamWorkBigInt temp;int carry = 0;for (int i = 0; i < TeamWorkBigInt::digits; i++){temp.integer[i] = op2.integer[i] - op3.integer[i] - carry;if (temp.integer[i] < 0){temp.integer[i] += 10;carry = 1;}elsecarry = 0;}temp.sign = op2.sign;return temp;}else{TeamWorkBigInt temp;int carry = 0;for (int i = 0; i < TeamWorkBigInt::digits; i++){temp.integer[i] = op3.integer[i] - op2.integer[i] - carry;if (temp.integer[i] < 0){temp.integer[i] += 10;carry = 1;}elsecarry = 0;}temp.sign = op3.sign;return temp;}}TeamWorkBigInt TeamWorkBigInt::operator+(int op2) const
{TeamWorkBigInt temp;int carry = 0;for (int i = 0; i < digits; i++){temp.integer[i] = integer[i] + op2 % 10 + carry;op2 /= 10;if (temp.integer[i] > 9){temp.integer[i] -= 10;carry = 1;}elsecarry = 0;}return temp;
}TeamWorkBigInt TeamWorkBigInt::operator-(const TeamWorkBigInt& op2) const
{TeamWorkBigInt temp;int carry = 0;for (int i = 0; i < digits; i++){temp.integer[i] = integer[i] - op2.integer[i] - carry;if (temp.integer[i] < 0){temp.integer[i] += 10;carry = 1;}elsecarry = 0;}return temp;
}int TeamWorkBigInt::operator>(const TeamWorkBigInt& op2) const
{int i = digits - 1;while (integer[i] == op2.integer[i] && i >= 0)i--;if (i == -1)return 0;else if (integer[i] > op2.integer[i])return 1;elsereturn 0;
}int TeamWorkBigInt::operator>=(const TeamWorkBigInt& op2) const
{int i = digits - 1;while (integer[i] == op2.integer[i] && i >= 0)i--;if (i == -1)return 1;else if (integer[i] > op2.integer[i])return 1;elsereturn 0;
}int TeamWorkBigInt::operator==(const TeamWorkBigInt& op2) const
{int i = digits - 1;while (integer[i] == op2.integer[i] && i >= 0)i--;if (i == -1)return 1;elsereturn 0;
}TeamWorkBigInt TeamWorkBigInt::operator*(const TeamWorkBigInt& op2) const {TeamWorkBigInt temp;int carry = 0;for (int i = 0; i <= this->getLength(); i++) {for (int j = 0; j <= op2.getLength(); j++) {if (i + j < digits) {temp.integer[i + j] += integer[i] * op2.integer[j] + carry;carry = temp.integer[i + j] / 10;temp.integer[i + j] %= 10;}}}return temp;
}TeamWorkBigInt TeamWorkBigInt::operator/(int  op2) {TeamWorkBigInt temp = *this;if (op2 < 0) {op2 = -op2;temp.sign = temp.sign * -1;}int temptemp;int carry = 0;for (int i = getLength() - 1; i >= 0; i--) {temptemp = temp.integer[i] + carry * 10;temp.integer[i] = temptemp / op2;carry = temptemp % op2;}return temp;}TeamWorkBigInt& TeamWorkBigInt::operator=(const int b) {for (short& j : integer) {j = 0;}int a = b;int k = 0;while (a != 0) {integer[k] = a % 10;a /= 10;k++;}return *this;
}TeamWorkBigInt::TeamWorkBigInt(int i) {for (short& j : integer) {j = 0;}int k = 0;while (i != 0) {integer[k] = i % 10;i /= 10;k++;}}TeamWorkBigInt& TeamWorkBigInt::operator+=(const TeamWorkBigInt& a) {if (a.sign == -1) {TeamWorkBigInt b = a;b.sign = 1;*this = *this - b;return *this;}int carry = 0;for (int i = 0; i < digits; i++) {integer[i] += a.integer[i] + carry;if (integer[i] >= 10) {integer[i] -= 10;carry = 1;}else {carry = 0;}}return *this;
}TeamWorkBigInt& TeamWorkBigInt::operator/=(const int b) {int carry = 0;int a = -b;int temp;for (int i = getLength() - 1; i >= 0; i--) {temp = integer[i];integer[i] = (integer[i] + carry * 10) / a;carry = (temp + carry * 10) % a;}sign *= -1;return *this;
}TeamWorkBigInt TeamWorkBigInt::operator/(const TeamWorkBigInt& a) {TeamWorkBigInt temp = *this;int num = a.getLength() - 1;for (int i = 0; i < getLength(); i++) {temp.integer[i] = integer[i + num];}for (int i = getLength(); i < digits; i++)temp.integer[i] = 0;return temp;
}TeamWorkBigInt TeamWorkBigInt::operator*(int a) const {TeamWorkBigInt temp;int carry = 0;for (int i = 0; i <= this->getLength(); i++) {temp.integer[i] += integer[i] * a + carry;carry = temp.integer[i] / 10;temp.integer[i] %= 10;}return temp;
}TeamWorkBigInt pow(TeamWorkBigInt a, int b) {TeamWorkBigInt temp;temp.integer[b] = 1;return temp;
}int main()
{int i, N;TeamWorkBigInt  n = 10, b, x1, x2, s, t, pi;std::cin >> N;N--;b = pow(n, N + 10);x1 = b * 4 / 5;x2 = b / -239;s = x1 + x2;for (i = 3; i <= N * 2; i += 2){x1 /= -25;x2 /= -57121;t = (x1 + x2) / i;s += t;}pi = s * 4;std::cout << (pi / pow(n, 10)) << std::endl;return 0;
}

文章转载自:

http://CeZ3OeVx.ggnkt.cn
http://6MVDImie.ggnkt.cn
http://VAk9TEW0.ggnkt.cn
http://DN1qldOa.ggnkt.cn
http://LZkA9rt2.ggnkt.cn
http://mUrtOUQ2.ggnkt.cn
http://JXoRMKgV.ggnkt.cn
http://HdzT2Ha0.ggnkt.cn
http://Tl9MEgGb.ggnkt.cn
http://TzRyE2iC.ggnkt.cn
http://Z3xzFoJl.ggnkt.cn
http://RhfzEw2a.ggnkt.cn
http://pHzkWllp.ggnkt.cn
http://bIMZL1Em.ggnkt.cn
http://2X1tVvnq.ggnkt.cn
http://wczPZG6x.ggnkt.cn
http://cpx9Kbap.ggnkt.cn
http://TvU7C8Vw.ggnkt.cn
http://kV6qYD1V.ggnkt.cn
http://6tpDJSve.ggnkt.cn
http://pBtXtkbP.ggnkt.cn
http://ATMd8ySR.ggnkt.cn
http://r2Nl2qnW.ggnkt.cn
http://1tFbFA20.ggnkt.cn
http://YLKVPh6T.ggnkt.cn
http://LgfvpJoq.ggnkt.cn
http://p9wMs4lU.ggnkt.cn
http://hIGqi8cO.ggnkt.cn
http://q82pWs7R.ggnkt.cn
http://LU2uPcoq.ggnkt.cn
http://www.dtcms.com/wzjs/662744.html

相关文章:

  • 建立网站建站程序社交网站图片展示
  • 网站建设公司网站模板下载有些网站怎么经常换域名
  • 建设小型网站价钱网站设计论文题目
  • 嘉兴建设中学网站济宁专业网站制作公司
  • 百度云wordpress怎么搭建网站做一名优秀网站设计师计划
  • 通过wordpress建站wordpress 主题配置
  • 如何建设一个静态网站个人怎样做旅游网站
  • 外贸网站建设公司市场有什么教做甜品的网站
  • 网站建设与维护就业前景html网站欣赏
  • 榆林北京网站建设淘宝seo是指什么
  • 永康网站建设制作室内设计培训班排行榜学校
  • 高校资源网网站建设方案seo优化系统哪个好
  • 网站备案 流程wordpress博客没有找到
  • 住房和城乡建设厅门户网站品牌网站建设公司哪好
  • 网站站内内链建设wordpress 邮件文本
  • 电子商务网站建设课程评价小制作小发明手工五年级
  • 优秀企业网站首页推广 quot 网站开发 quot
  • 做网站公众号多少钱wordpress经常打不开
  • jae搭建wordpressseo刷词
  • vue做前台网站ps临摹图片做网站的图片犯法吗
  • 个人备案做运营网站炫酷的企业网站
  • 做的网站需要买什么系统服务器长沙阳性1例
  • 学习网站推荐甘肃省建设部网站
  • wordpress如何仿站怀化最新通知今天
  • 做网站和优化it培训机构课程
  • 360兼容模式网站错位手机制作游戏的软件
  • seo关于网站搜索排名wordpress前大
  • 男生做污污事的视频网站免费设计字体
  • 网站建设上海网站制作免费网站设计神器
  • 凡科网站建设公司专业建设 教学成果奖网站