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

网站模板放哪开发网站用什么语言

网站模板放哪,开发网站用什么语言,怎么让百度收录你的网站,做问卷调查的网站题目描述 用高精度计算出 S1!2!3!⋯n!#xff08;n≤50#xff09;。 其中 ! 表示阶乘#xff0c;定义为 n!n(n−1)(n−2)⋯1。例如#xff0c;5!54321120。 输入格式 一个正整数 n。 输出格式 一个正整数 S#xff0c;表示计算结果。 输入输出样例 输入 #1 3输出…题目描述 用高精度计算出 S1!2!3!⋯n!n≤50。 其中 ! 表示阶乘定义为 n!n×(n−1)×(n−2)×⋯×1。例如5!5×4×3×2×1120。 输入格式 一个正整数 n。 输出格式 一个正整数 S表示计算结果。 输入输出样例 输入 #1 3输出 #1 9 解题分析 思路很简单求出阶乘之后再累次求和即可但是关键在于这个数据量实在是太大了所以必须封装高精度运算这里我们创建一个BigInt类然后重载运算符和*得出答案即可。 这段代码定义了一个 BigInt 类来处理大整数的运算这对于计算大数的阶乘和它们的和是必需的因为标准的整型变量无法存储这么大的数字。接下来我们会逐步解释关键的组成部分尤其是高精度的加法和乘法。 构造函数 BigInt 类有两个构造函数分别接受一个整数和一个字符串作为参数。整数构造函数将整数转换为字符数组字符串表示而字符串构造函数则直接复制给定的字符串到内部字符数组。转换整数时采用逆序存储的方式方便后续的加法和乘法运算。 高精度加法 高精度加法的实现在 operator 函数中。它首先将两个大整数的字符串表示逆序存储到整型数组中然后逐位相加并处理进位。由于加法可能导致结果的位数增加例如999 1 1000因此需要预留足够的空间并在最后处理进位。加法完成后将得到的数字逆序转换成字符串形式得到最终的加法结果。 高精度乘法 高精度乘法的实现在 operator* 函数中。该函数使用了一个简单的乘法运算法则即对于两个数的每一位相乘并将结果累加到正确的位置上。这里同样使用了逆序存储和处理进位。乘法的复杂度较高因为它涉及到双层循环每一位的乘积都需要计算并累加进位。 阶乘与求和 factorial 函数计算给定整数的阶乘通过从 2 乘到 n 的方式使用前面定义的高精度乘法。 在 main 函数中读取用户输入的 n然后从 1 遍历到 n计算每个数的阶乘并使用高精度加法将它们累加起来。最终将结果输出。 示例 对于输入 3计算 1! 2! 3! 的结果 1! 12! 23! 6 因此1! 2! 3! 9。 这段代码通过高精度运算支持了对大数的阶乘及其和的计算解决了标准数据类型无法处理大数运算的问题。 代码实现 #include iostream #include cstring #include iomanip using namespace std; class BigInt{ public:char s[3000];BigInt(int n){char c;int k0;if(n0){s[0]0;s[1]\0;k1;}while(n){cn%100;s[k]c;n/10;}s[k]\0;for(int i0,jk-1;ij;i,j--){cs[i];s[i]s[j];s[j]c;}}BigInt(const char *s1){strcpy(s,s1);}BigInt operator(const BigInt b){int lenastrlen(s);int lenbstrlen(b.s);int a1[3000],b1[3000],c[3000]{0};for(int i0,jlena-1;ilena;i,j--){a1[i]s[j]-0;}for(int i0,jlenb-1;ilenb;i,j--){b1[i]b.s[j]-0;}int lenlenalenb;int tmp0;for(int i0;ilen;i){c[i]a1[i]b1[i]tmp;tmpc[i]/10;c[i]%10;}char ans[3000];int pos0;for(int ilen;i0;i--){if(c[i]){posi1;break;}}for(int i0,jpos-1;ipos;i,j--){ans[i]c[j]0;}ans[pos]\0;if(pos0){ans[0]0;ans[1]\0;}return BigInt(ans);}BigInt operator*(const BigInt b){int lenastrlen(s);int lenbstrlen(b.s);int a1[3000],b1[3000],c[3000]{0};for(int i0,jlena-1;ilena;i,j--){a1[i]s[j]-0;}for(int i0,jlenb-1;ilenb;i,j--){b1[i]b.s[j]-0;}int lenlenalenb2;int jw;for(int i0;ilena;i){jw0;for(int j0;jlenb;j){c[ij]a1[i]*b1[j]jw;jwc[ij]/10;c[ij]%10;}c[ilenb]jw;}char ans[3000];int pos0;for(int ilen;i0;i--){if(c[i]){posi1;break;}}for(int i0,jpos-1;ipos;i,j--){ans[i]c[j]0;}ans[pos]\0;if(pos0){ans[0]0;ans[1]\0;}return BigInt(ans);} };BigInt factorial(int n){BigInt ans(1);for(int i2;in;i){ansans*BigInt(i);}return ans; }int main(){BigInt res(0);int n; cinn;for(int i1;in;i){resresfactorial(i);}coutres.sendl;return 0; }
http://www.zqtcl.cn/news/99246/

相关文章:

  • 国外建设网站的软件西宁设计网站建设
  • 云服务器网站配置在线设计免费logo
  • 怎么在手机上做企业网站北京大学两学一做网站
  • 社区网站建设方案书服务型网站建设的主题
  • 做淘推广的网站如何制作表白链接
  • 外贸网站代码中国建设银行招聘网站甘肃分行
  • 免费ai设计logo网站西安网站开发外包公司有
  • 2017优秀网站设计欣赏如何做建议的网站
  • 获取网站访问qq怎么做链接
  • 最简单的网站建设中英文自助网站建设
  • vps 做网站品牌网站建设可信大蝌蚪
  • 怎样在百度建网站怎么建设课题网站
  • 广西网站设计欣赏企业网站建设的管理制度
  • 网站建设与管理提纲免费编程教学视频
  • 做效果图的网站有哪些推广网站详细教程
  • 2.0网站线上建设什么意思WordPress怎么设置分类
  • 湖南众诚建设 官方网站开发者模式是干什么的
  • o2o平台都有哪些网站公司莱芜网站优化方案
  • 个人或主题网站建设 实验体会网站开发可退税
  • 龙岗同乐社区做网站昆明发布最新通告
  • 能进外国网站看视频的浏览器wordpress 信息流
  • 怎样做自己介绍网站昆明网红打卡地有哪些地方
  • 一个外国人做汉字网站广州近期流行的传染病
  • 做pc端网站新闻pdf 网站建设
  • 盱眙网站建设棋牌软件定制开发
  • struts2 做的网站南京做网站优化
  • 网站设计的安全尺寸wordpress qqoq主题
  • 网站建设500错误代码网站文章超链接怎么做
  • 网站建设尺寸凡科建站弊端
  • 企业网站建设模板多少钱在哪里建网站免费