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

宁波网站建设开发多少钱为什么自己做的网站别的电脑打不开

宁波网站建设开发多少钱,为什么自己做的网站别的电脑打不开,网站建设大作业论文,创建一个网站的技术题目title: 阶乘计算升级版 题目作者: 陈越 浙江大学 本题要求实现一个打印非负整数阶乘的函数。 函数接口定义: void Print_Factorial ( const int N ); 其中N是用户传入的参数,其值不超过1000。如果N是非负整数&#…

题目title: 阶乘计算升级版       题目作者: 陈越 浙江大学

本题要求实现一个打印非负整数阶乘的函数。

函数接口定义:

void Print_Factorial ( const int N );

其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。

裁判测试程序样例:

#include <stdio.h>int Factorial( const int N );int main()
{int N, NF;scanf("%d", &N);NF = Factorial(N);if (NF)  printf("%d! = %d\n", N, NF);else printf("Invalid input\n");return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

15

输出样例:

1307674368000

思路:这道题目的最后一个测试点是一个坑,要通过最后一个测试点就不能用普通的int、long long去存放计算出来的阶乘了,因为会越界!

我们的思路是用一个数组F[N]来存放阶乘(这里数组长度最小设置为N=2568,这个长度是我试出来的刚好能通过最后一个测试点的最小数组长度,多写点也无所谓)。存放的结构是低位在前,即F[0]存放的是个位,依此类推。

计算阶乘的时候我们用外层循环让i从2迭代到N,每次迭代给F"乘以"i。

这里的这个给数组"乘以"一个数,是用里层循环完成的,就按照我们小学学过的整数带进位的乘法。遍历从F[0]到F[N-1],比如遍历到某个F[j],我们要做的运算下面3步:
(1)给F[j]乘以外层循环当前的i,在加上F[j]前一项进位过来的值carry,然后把结果赋值给F[j],即F[j]=F[j]*i+carry;
(2)计算出要进位给下一位F[j+1]的值,carry = F[j]/10;
(3)F[j]只保留个位数字,F[j] = F[j]%10。

当里层循环遍历完,就像相当于给当前的阶乘F"乘以"外层循环当前的i,

当外层循环迭代完,F就存储了我们想要的阶乘了,只不过存储的结构是低位在前。

最后,我们要找到数组最后一个不为0的元素,从这个元素开始倒序输出数组即可。

代码:

void Print_Factorial ( const int N ) {int i, j, carry = 0;int M = 2568, F[2568] = {1}; // 初始化一个长度为2568的数组,为什么是2568呢?因为刚好能通过最后一个测试点。比2568长,是可以的。if (N < 0) {printf("Invalid input");return;} else if (N == 0) {printf("1");return;} else if (N > 0) {for (i = 2; i <= N; i++) {     // 用数组F来存放每次迭代算出来的阶乘,存放时低位在前,即F[0]存放的是个位,依此类推。for (j = 0; j < M; j++) {  // 乘的时候,用for循环对数组F的每个元素进行处理,计算的原则就是带进位的乘法。F[j] = F[j]*i+carry;carry = F[j]/10;F[j] = F[j]%10;}}for (i = M-1; i >= 0; i--) {if (F[i] != 0) {break;}}for (j = i; j >= 0; j--) {printf("%d",F[j]);}return;} 
}
 更多PTA题目的的参考代码,可以在wx小程序里搜“PTA刷题助手”,或扫下面的二维码

http://www.yayakq.cn/news/803007/

相关文章:

  • 中国做视频网站有哪些内容北京礼品网站建设
  • 全国首批9所重点马院网站建设wordpress登陆不了
  • 北京网站制作公司公司郑州现在可以正常出入吗
  • 网页休闲游戏网站wordpress什么值得买
  • 北京企业官网建站怎么做微信网站吗
  • 郸城县做网站国外网站 dns
  • 网站挂马解决网站后台需求
  • 购物网站宣传方案预约支付wordpress
  • 龙华做网站公司浙江省建设监理管理协会网站
  • 推荐常州微信网站建设胖咯科技网站建设
  • 优质服务的小企业网站建设优化什么建立生育支持政策体系降低生育养育教育成本
  • 建设银行网上营业厅官方网站下载中国商标网商标查询网
  • 网站私信界面wordpress nginx伪静态配置
  • 哈密网站建设做公众号app,网站,app
  • 网站应用软件怎么架设数据可视化
  • 织梦网站主页地址更改武进网站建设好么
  • 淘宝网站开始怎么做的现在市场最火的网店平台
  • 加强检察门户网站建设情况南通高端网站建设
  • 开服网站源码网站网站设计网站
  • 公司网站优化推广建设银行义乌分行网站
  • seo优秀网站分析甘肃省城乡城乡建设厅网站首页
  • 做puzzle的网站没有备案的网站百度不收录
  • 马鞍山网站设计价格wordpress支付接口同步回调
  • 景区官方网站建设方案网络营销课程主要讲什么内容
  • 嘉定企业网站开发建设河北省建设工程综合信息网
  • 做南美生意做什么网站好响应式布局和弹性布局的区别
  • 广州航海学院门户网站自己电脑做网站 带宽
  • 上饶市建设培训中心网站谷歌推广优化
  • 重庆微信网站代理商网站建设 图书
  • 做网站什么码网页设计与制作论文2000字