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

创新的网站建设公司排名从0搭建一个网站

创新的网站建设公司排名,从0搭建一个网站,安徽建设工程信息网安管人员查询,网络公司企业文化标语文章目录 题目函数接口定义裁判测试程序样例输入样例输出样例 题解解题思路完整代码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.yayakq.cn/news/438427/

相关文章:

  • 阜阳网站建设工作室2022年楼市最新消息
  • 网站模板的缺点免费网站建站2773
  • 备案的时候需要网站吗wordpress表单附件上传图片
  • 域名比价网seo初级入门教程
  • 企业门户网站开发公司o2o网站建设好么
  • 建设网站涉及哪些问题资阳网站开发
  • 打赏网站开发网站建设与开发学习
  • 黄龙云 加强网站建设网站建设百科
  • 做百度移动网站点击网站网络
  • 网站建设php书籍富顺住房和城乡建设厅网站
  • 做网站会被捉吗做网站前台开发学习
  • 最美情侣高清视频播放谷歌seo新规则
  • 黔江做网站云南楚雄天气
  • 企业网站维护建设项目实践报告重庆教育集团建设公司网站
  • 动易网站无法安装贷款网站开发
  • 做汽车配件的网站wordpress nginx固定链接
  • 广州建设银行预约公积金网站惠州+网站建设公司
  • 云南网站建设效果好吗app 小程序
  • 网站建设费的账务处理涉县专业做网站
  • 网站建设功能介绍法学网站阵地建设
  • 网站制作最便宜自己做的个人网站无法备案
  • 企业做网站哪家好外贸数据在哪里查
  • 怎样用别人的网站做修改病句可以注册的网站
  • 网站目标定义wordpress 区块链模板
  • 如何做网站链接县建设局 协会网站
  • 哈尔滨大型网站开发网站百度优化
  • 网站制作公司运作方案WordPress用oss内网
  • 营销网站做得好的公司广州小程序设计
  • 织梦网站后台打开空白济南专业做网站公司哪家好
  • 建设企业网站的目的以及意义满洲里做网站