c语言实现:输入格式: 输入一个数N。1<=N<=1000000。 输出格式: 输出N!的最后5位数字。如果位数不够。请用0补齐。
时间: 2024-03-10 20:48:02 浏览: 86
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int res = 1;
// 计算n的阶乘
for (int i = 2; i <= n; i++) {
res = (res * i) % 100000; // 只保留最后五位
}
// 输出结果
if (res < 10000) { // 需要在前面补0
printf("0%d", res);
} else {
printf("%d", res);
}
return 0;
}
```
该程序首先读入n,然后利用循环计算n的阶乘,并将结果只保留最后五位。最后,程序输出结果,并在前面补0(如果需要)。需要注意的是,程序中每次计算都要保留最后五位,这可以通过取模运算实现(即在每次计算后将结果对100000取模)。
相关问题
输入格式: 输入一个数N。1<=N<=1000000。 输出格式: 输出N!的最后5位数字。如果位数不够。请用0补齐。并且用C语言编写程序
好的,根据您的要求,我可以为您提供一个使用C语言实现的程序来计算N!的最后5位数字。具体实现如下:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int result = 1;
for (int i = 1; i <= n; i++) {
result = (result * i) % 100000;
}
printf("%05d\n", result);
return 0;
}
```
在上述代码中,我们首先使用scanf函数来读入一个数N。然后,我们使用一个循环来计算N!,并将结果保存在变量result中。在每次循环中,我们将result乘以i,并对100000取模,这样可以保证result只保存最后5位数字。最后,我们使用printf函数来输出result的值,其中%05d表示输出一个5位数,不足5位时用0补齐。
希望我的回答能够帮助到您!
由键盘输入n个整数放入一维数组中,编程将所有整数逆序输出。 输入格式: 第一行是n(1 <= n <= 20),表示输入的整数个数。 第二行是n个整数,邻近两数之间用一个空格隔开。 输出格式: 在一行中逆序输出所有整数。两数之间用一个,(逗号)隔开。c语言
以下是C语言实现代码:
```c
#include <stdio.h>
int main()
{
int n, i;
scanf("%d", &n);
int arr[n]; // 定义长度为n的整型数组
for(i = 0; i < n; i++)
{
scanf("%d", &arr[i]); // 读入n个整数
}
for(i = n - 1; i >= 0; i--)
{
printf("%d", arr[i]); // 逆序输出所有整数
if(i != 0) // 不是最后一个数
{
printf(","); // 输出逗号
}
}
return 0;
}
```
输入示例:
```
5
1 2 3 4 5
```
输出示例:
```
5,4,3,2,1
```
阅读全文