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

设计网站推荐大北京aso优化

设计网站推荐大,北京aso优化,如何从零开始做网站,如何防止网站被攻击文章目录 题目函数接口定义裁判测试程序样例输入样例输出样例 题解解题思路完整代码AC代码 编程练习题目集目录 题目 要求实现一个打印非负整数阶乘的函数。 函数接口定义 void Print_Factorial ( const int N ); 其中N是用户传入的参数,其值不超过 1000 1000 10…

文章目录

  • 题目
    • 函数接口定义
    • 裁判测试程序样例
    • 输入样例
    • 输出样例
  • 题解
    • 解题思路
    • 完整代码
    • AC代码

编程练习题目集目录

题目

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

函数接口定义

void Print_Factorial ( const int N );

  其中N是用户传入的参数,其值不超过 1000 1000 1000。如果 N N N 是非负整数,则该函数必须在一行中打印出 N ! N! N! 的值,否则打印 “ I n v a l i d i n p u t ” “Invalid input” Invalidinput

裁判测试程序样例

#include <stdio.h>
void Print_Factorial(const int N);
int main()
{int N;scanf("%d", &N);Print_Factorial(N);return 0;
}
/* 你的代码将被嵌在这里 */

输入样例

15

输出样例

1307674368000

题解

解题思路

  首先判断传入函数的数字是否小于 0 0 0,如果小于 0 0 0,则输出 “ I n v a l i d i n p u t ” “Invalid input” Invalidinput;如果是 0 0 0 或者 1 1 1 则直接输出 1 1 1 即可;如果在 2 − 12 2-12 212 之间则可以直接相乘,输出即可;如果大于 12 12 12 则变量无法保存数据,需要使用数组来保存,将结果以数组形式输出即可。

完整代码

#include <stdio.h>void Print_Factorial ( const int N );int main()
{int N;scanf("%d", &N);Print_Factorial(N);return 0;
}/* 你的代码将被嵌在这里 */
void Print_Factorial(const int N)
{if (N < 0){printf("Invalid input\n");}else if (N < 2)             // 0和1的阶层为1{printf("1\n");}else if (N > 1 && N < 13)   // 12及之前都可以用long int型表达{int i = 2;long int sum = 1;for (i; i <= N; i++){sum *= i;}printf("%ld\n", sum);}else{int Num[3000] = { 0 };  // 确保保存最终运算结果的数组足够大:1-9相乘最多有9位,10-99相乘最多有2*90=180位,100-999相乘最多有3*900=2700位,1000是4*1=4位,总计2893,最好数组取大一下int i, j, k, n;k = 1;                  // 位数n = 0;                  // 进位Num[0] = 1;             // 将结果先初始化为1int temp;               // 阶乘的任一元素与临时结果的某位的乘积结果for (i = 2; i <= N; i++){for (j = 0; j < k; j++){temp = Num[j] * i + n;      // 相应阶乘中的一项与当前所得临时结果的某位相乘(加上进位)Num[j] = temp % 10;         // 更新临时结果的位上信息n = temp / 10;              // 看是否有进位}while (n)                       // 如果有进位{Num[k] = n % 10;            // 新加一位,添加信息。位数增1k++;n = n / 10;                 // 看还能不能进位}}for (i = k - 1; i >= 0; i--){printf("%d", Num[i]);}printf("\n");}
}

AC代码

void Print_Factorial(const int N)
{if (N < 0){printf("Invalid input\n");}else if (N < 2)             // 0和1的阶层为1{printf("1\n");}else if (N > 1 && N < 13)   // 12及之前都可以用long int型表达{int i = 2;long int sum = 1;for (i; i <= N; i++){sum *= i;}printf("%ld\n", sum);}else{int Num[3000] = { 0 };  // 确保保存最终运算结果的数组足够大:1-9相乘最多有9位,10-99相乘最多有2*90=180位,100-999相乘最多有3*900=2700位,1000是4*1=4位,总计2893,最好数组取大一下int i, j, k, n;k = 1;                  // 位数n = 0;                  // 进位Num[0] = 1;             // 将结果先初始化为1int temp;               // 阶乘的任一元素与临时结果的某位的乘积结果for (i = 2; i <= N; i++){for (j = 0; j < k; j++){temp = Num[j] * i + n;      // 相应阶乘中的一项与当前所得临时结果的某位相乘(加上进位)Num[j] = temp % 10;         // 更新临时结果的位上信息n = temp / 10;              // 看是否有进位}while (n)                       // 如果有进位{Num[k] = n % 10;            // 新加一位,添加信息。位数增1k++;n = n / 10;                 // 看还能不能进位}}for (i = k - 1; i >= 0; i--){printf("%d", Num[i]);}printf("\n");}
}
http://www.mmbaike.com/news/87388.html

相关文章:

  • 泰州哪里做网站北京seo代理公司
  • 减肥产品网站模板自动外链发布工具
  • 网站推广入口百度竞价优缺点
  • 云主机做网站域名打不开站长之家网站流量查询
  • 免费信息网站建设平台互联网营销的方法有哪些
  • 施工企业副总经理竞聘优化网站推广网站
  • metinfo怎么做网站怎么自己弄一个网站
  • 河北沧州网站建设百度指数查询手机版app
  • 西安网站建设中企建站广东疫情最新数据
  • dedecms美食网站石家庄网站建设排名
  • 一键生成作文的网站关键词排名查询网站
  • 网站开发需要什么条件深圳百度网站排名优化
  • 门户网站建设 工具爱战网关键词查询网站
  • 阜宁做网站价格谷歌浏览器官网下载
  • flash 如何做游戏下载网站搜索引擎排名优化包括哪些方面
  • 专业足球网站建设大数据培训机构排名前十
  • 网站如何做点击链接厦门百度广告
  • 镇江外贸型网站建设哪些网站可以免费推广
  • 成人编程培训班关键词优化排名软件
  • wordpress缩略图延时加载seo算法
  • 南山区做网站精准客户数据采集软件
  • 网站建设外包怎么样企业网站排名优化公司
  • 杭州网站建设企业站长工具收录
  • 免注册个人网站制作武汉网站建设
  • 做网站应该画什么图网站优化公司大家好
  • 设计签名网站优化包括哪些
  • 阿里云做网站的代码广州建网站的公司
  • 那个网站攻略做的好好用的视频播放器app
  • 制作网站的页面设计怎么做万网域名注册官网
  • 网站建设一个月做十单软文写手