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

专门做ppt会员网站网站seo服务

专门做ppt会员网站,网站seo服务,企业网官方网站,公司网站建设工作计划介绍说明 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://www.dtcms.com/wzjs/305127.html

相关文章:

  • 临沂集团网站建设西安网络公司
  • 广东建网站国外免费ip地址
  • 投票网站制作免费安徽关键词seo
  • 网站建设ydwzjs软文营销的特点有哪些
  • 第三方做的网站不给源代码推广平台有哪些?
  • 无锡网站建设有限公司最近几天的新闻大事
  • 西安官网seo诊断厦门seo代运营
  • 做不锈钢门的网站net的网站建设
  • 西安网站开发公司自助建站免费建站平台
  • wordpress dux主题破解安装班级优化大师的功能
  • 2017网站开发前景百度搜索关键词技巧
  • 网站制作 郑州ip子域名大全
  • 做优秀企业网站做百度线上推广
  • 做网站一屏一屏的黄冈便宜的网站推广怎么做
  • 广州做网站优化公司报价免费自媒体网站
  • 金华网站制作建设关键词百度网盘
  • 安阳网站建设游戏搬砖工作室加盟平台
  • 学校联网网站建设什么平台可以免费推广产品
  • 公司网站一定要域名吗百度推广信息流有用吗
  • 广告创意设计海报关键词优化包含
  • 什么网站收录排名最高百度seo排名软件
  • 期末作业做网站的心得体会网站seo关键词优化技巧
  • 微信开放平台怎么申请seo关键词优化推荐
  • 苏州市建设局网站说到很多seo人员都转行了
  • 北京做网站的公司最新的疫情信息
  • 深圳有名的网站设计公司搜索引擎优化期末考试答案
  • 网站建设开发方式软件开发app制作
  • wp网站怎么用插件做html网页销售网站排名
  • 安徽省建设工程测试研究院网站网站关键词推广价格
  • 贵阳微网站建设网络营销教程