阶乘计算升级版(大整数)
2016-06-11 20:52
295 查看
本题要求实现一个打印非负整数阶乘的函数。
其中
input”。
由于结果比较大,需要使用数组来模拟乘法的运算。
函数接口定义:
void Print_Factorial ( const int N );
其中
N是用户传入的参数,其值不超过1000。如果
N是非负整数,则该函数必须在一行中打印出
N!的值,否则打印“Invalid
input”。
裁判测试程序样例:
#include <stdio.h>
void Print_Factorial ( const int N );
int main()
{
int N;
scanf("%d", &N);
Print_Factorial(N);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
15
输出样例:
1307674368000
由于结果比较大,需要使用数组来模拟乘法的运算。
void Print_Factorial(const int N){ if(N < 0) printf("Invalid input\n"); else if(N == 0) printf("1\n"); else{ int number[10000]={0}; number[0] = 1; int right = 0, num, carry=0; for(int n = 2; n <= N; ++n){ for(int r = 0; r <= right; ++r){ num = number[r] * n + carry; number[r] = num % 10; carry = num / 10; } while(carry){ right ++; number[right] = carry %10; carry/=10; } } for(int r = right ; r >=0 ; --r){ printf("%d", number[r]); // printf(" right: %d", right); } } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- 关于C#中排序函数的总结
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua实现split函数
- Lua常用时间函数使用实例
- Lua函数与字符串处理简明总结