题目如图
分析题目可以知道,要实现这个要求,只要每次乘完后只取最右边第一个不为0的数进行下一次相乘即可。
下面是实现步骤
阶乘函数
void jiecheng(int num){
int i = 1;
int sum = 1;
if (num != 0){
for (; i <= num; i++){
if (sum % 10 == 0){ //只取最后一位非0数进行运算
sum /= 10;
}
else
sum %= 10;
sum *= i;
}
}
while (sum > 10){ //对最后结果再次进行判断,只取最后一位非0数
if (sum % 10 == 0){
sum /= 10;
}
else{
sum %= 10;
}
}
printf("%d\n", sum);
}
主函数
int _tmain(int argc, _TCHAR* argv[])
{
int n;
int sum;
printf("输入:");
scanf("%d", &n);
jiecheng(n);
system("pause");
return 0;
}
测试数据