本题要求实现一个打印非负整数阶乘的函数。
函数接口定义:
void Print_Factorial ( const int N );
其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。
也就是说阶乘结果大于int范围该如何计算阶乘。
解题思路:
模拟现实中计算乘法的竖式。
- 从个位到高位分别乘乘数
- 数值大于个位则进位
- 例如:
128 * 12:
812==96 进位9 余6;
212=24 24+9=33 进位3 余3;
1*12=12 12+3=15 进位1 余5;
0+1=1 余1;
结果=1536
#include <stdio.h>
void Print_Factorial(const int N);
int main()
{
int N;
scanf_s("%d", &N