利用c语言求和s=1!+3!+5!
时间: 2023-12-18 21:02:47 浏览: 33
以下是利用c语言求和s=1! 3! 5!的代码:
```c
#include <stdio.h>
int main()
{
int i, j, s = 0;
for(i = 1; i <= 5; i += 2)
{
int fact = 1;
for(j = 1; j <= i; j++)
{
fact *= j;
}
s += fact;
}
printf("s = %d", s);
return 0;
}
```
在上面的代码中,我们使用了两个for循环。外部的for循环用于循环1、3、5这三个数,内部的for循环用于计算这些数的阶乘。每次计算完阶乘后,将其加到s中。最终,输出s的值即可。
注意,由于1的阶乘为1,因此在计算1的阶乘时,内部的for循环不会执行,从而不会将1加到s中。
相关问题
c语言利用函数的递归调用求解 s=1!+2!+3!+4!+……+n!(不用for循环)
可以使用递归函数来求解阶乘和。先定义一个函数用来计算阶乘,然后在函数中调用自身来实现递归,最后在主函数中调用这个递归函数来求解阶乘和。
以下是示例代码:
```c
#include <stdio.h>
// 递归函数用来计算阶乘
int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n, i, s = 0;
printf("请输入求和的数n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
s += factorial(i);
}
printf("s = %d\n", s);
return 0;
}
```
在上面的代码中,factorial 函数用来计算阶乘,如果 n 等于 1,返回 1,否则返回 n * factorial(n - 1)。在主函数中,使用 for 循环来求解阶乘和,将每次计算的阶乘加到 s 变量中,最后输出 s 的值。
利用C语言求和s=1+1/22+1/333+...+1/nn...nn+.....
以下是利用C语言求和s=1+1/22+1/333+...+1/nn...nn+.....的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n;
printf("请输入n:");
scanf("%d", &n);
double s = 1.0; // 初始化s为1
for (int i = 2; i <= n; i++) {
int nn = i; // nn表示n...n,初始值为i
int count = 1; // 统计n的位数
while (nn >= 10) {
nn /= 10;
count++;
}
nn = i; // 重新赋值nn为i
double val = 0.0; // 计算1/nn...nn的值
for (int j = 1; j <= count; j++) {
val += nn / pow(10, (count-j+1));
}
s += 1.0 / val; // 累加到s中
}
printf("s = %lf\n", s);
return 0;
}
```
该程序首先读入一个正整数n,然后使用for循环遍历2到n的每个整数。对于每个整数i,我们需要计算1/nn...nn的值,其中nn表示n...n(共有i位)。为了计算nn,我们需要先统计n的位数,然后根据位数分解出每一位上的值。最后,利用pow函数计算1/nn...nn的值,并将其累加到s中。最终输出s的值即可。