用c语言写一个计算自己学号后八位数的阶乘是多少位数的程序
时间: 2023-04-08 15:04:46 浏览: 80
以下是用 C 语言编写计算学号后八位数的阶乘位数的程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define MAX_DIGITS 10000
void multiply(int result[], int num, int *size) {
int carry = 0;
for (int i = 0; i < *size; i++) {
int prod = result[i] * num + carry;
result[i] = prod % 10;
carry = prod / 10;
}
while (carry > 0) {
result[*size] = carry % 10;
carry /= 10;
(*size)++;
}
}
int main() {
char student_id[9];
printf("请输入您的学号后八位:");
scanf("%s", student_id);
int n = atoi(student_id);
if (n == 0) {
printf("输入错误!\n");
return 1;
}
int result[MAX_DIGITS] = {1};
int size = 1;
for (int i = 2; i <= n; i++) {
multiply(result, i, &size);
}
printf("%d 的阶乘是 %d 位数。\n", n, size);
return 0;
}
```
如果您有任何问题,请随时问我。
阅读全文