c++编程求1+1/2+1/3+…+1/n
时间: 2024-10-14 14:09:01 浏览: 106
在C++中,计算序列1 + 1/2 + 1/3 + ... + 1/n 的和是一个经典的数学系列求和问题,通常称为调和级数。如果要用循环实现,你可以创建一个变量用于累加每个分数,然后逐次将1除以从2到n的所有整数加入这个累加器。下面是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
double harmonic_sum(int n) {
double sum = 0.0;
for (int i = 2; i <= n; ++i) {
sum += 1.0 / static_cast<double>(i);
}
return sum;
}
int main() {
int n;
std::cout << "请输入一个正整数: ";
std::cin >> n;
if (n > 0) {
double result = harmonic_sum(n);
std::cout << "1到" << n << "的倒数之和为: " << result << std::endl;
} else {
std::cout << "输入无效,请输入一个正整数。\n";
}
return 0;
}
```
在这个例子中,`harmonic_sum` 函数接收一个整数 `n`,并返回前 `n` 项的调和级数和。注意这里为了防止整数溢出,将1/i转换成浮点数进行加法。
相关问题
c++1014 - 编程求1+1/2+1/3+...+1/n
C++1014中,求1+1/2+1/3+...+1/n的数学级数通常被称为调和级数(Harmonic series),这是一个常见的计算问题,在计算机编程中可以使用循环和累加的方式来实现。以下是简单的算法:
```cpp
#include <iostream>
using namespace std;
double harmonic_series(int n) {
double sum = 0;
for (int i = 1; i <= n; ++i) {
sum += 1.0 / i; // 每次迭代将1/i加入总和
}
return sum;
}
int main() {
int n;
cout << "Enter the value of n: ";
cin >> n;
double result = harmonic_series(n);
cout << "The sum of 1 + 1/2 + 1/3 + ... + 1/" << n << " is: " << result << endl;
return 0;
}
```
在这个程序中,`harmonic_series`函数接收一个整数n作为输入,然后通过for循环从1到n,每次迭代都将1/i的倒数加到`sum`变量上。最后返回这个累计和。
编程求1+1/2+1/3...
以下是C++语言的代码实现,用于计算1+1/2+1/3+...+1/n的和:
```c++
#include<bits/stdc++.h>
using namespace std;
int a,b;
float c;
int main() {
scanf("%d",&a);
for(int i=1;i<=a;i++)
c+=1.0/i*1.0;
printf("%.3f",c);
return 0;
}
```
阅读全文