R7-6 求1!+3!+5!+……+n!
时间: 2023-11-23 21:07:13 浏览: 67
以下是R7-6 求1!+3!+5!+……+n!的C语言代码实现:
```c
#include <stdio.h>
int main() {
int n, i, j, s = 0, t = 1;
scanf("%d", &n);
for (i = 1; i <= n; i += 2) {
t = 1;
for (j = 1; j <= i; j++) {
t *= j;
}
s += t;
}
printf("%d", s);
return 0;
}
```
输入一个正整数n,然后从1开始,每次加2,计算每个数的阶乘,最后将所有阶乘相加即可得到结果。
--相关问题--:
1. 如何计算一个数的阶乘?
2. 如何在C语言中输入一个数组?
3. 如何在C语言中输出一个数组?
相关问题
R7-1 计算s = 1/1! + 1/2! + 1/3! + …+ 1/n!的值
以下是C语言的代码实现:
```c
#include <stdio.h>
int main()
{
int n;
double sum = 0, fac = 1;
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
fac *= i;
sum += 1.0 / fac;
}
printf("s = %.6lf", sum);
return 0;
}
```
实现一个1!+2!+3!+....+10!的arm程序
以下是实现1!+2!+3!+....+10!的ARM汇编程序:
```assembly
.global _start
_start:
mov r0, #1 @ r0存储阶乘的结果
mov r1, #1 @ r1存储当前计算的数
mov r2, #1 @ r2存储当前计算的阶乘
mov r3, #10 @ r3存储需要计算的阶乘个数
loop:
mul r2, r2, r1 @ 计算当前数的阶乘
add r0, r0, r2 @ 将当前阶乘加入结果中
add r1, r1, #1 @ 将当前计算的数加1
cmp r1, r3 @ 比较当前计算的数和需要计算的数的大小
ble loop @ 如果小于等于,则继续循环
end:
mov r0, #1 @ 退出程序
mov r7, #1
swi 0
```
该程序使用了四个寄存器:r0用于存储阶乘的结果,r1用于存储当前计算的数,r2用于存储当前计算的阶乘,r3用于存储需要计算的阶乘个数。程序使用循环计算1!+2!+3!+....+10!,并将结果存储在r0中,最后退出程序。