本题要求实现一个打印非负整数阶乘的函数。
函数接口定义:
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
vs2015完整代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include <math.h>
void Print_Factorial(const int N);
int main()
{
int N;
scanf("%d", &N);
Print_Factorial(N);
system("pause");
return 0;
}
void Print_Factorial(const int N)
{
long sum = 1;
int i;
if (N<0)
printf("Invalid input");
else if (N == 0)
printf("1");
else
{
for (i = 1;i <= N;i ++ )
sum = sum*i;
printf("%ld", sum);
}
}
问题:因为考虑到的是小于等于12的整数,所以没报错,因此得分15分(20满分);
接下来,搞懂长整型数乘法!