C++ 根据用户输入的任意n,求1+2+3+.....+n的值
时间: 2024-06-13 08:06:11 浏览: 172
以下是两种C++求1+2+3+...+n的值的例子:
1.使用递归方法
```cpp
#include<iostream>
using namespace std;
int sum(int n) {
int x = n;
x && (x += sum(n - 1));
return x;
}
int main() {
int n;
cout << "请输入n的值:";
cin >> n;
cout << "1+2+3+...+" << n << "=" << sum(n) << endl;
return 0;
}
```
2.使用一维数论分块
```cpp
#include<bits/stdc++.h>
#define fer(i,a,b) for(re i = a ; i <= b ; ++ i)
#define re register int
typedef long long ll;
using namespace std;
const int N = 1e6 + 10 , M = 1010 , inf = 0x3f3f3f3f , mod = 1e9 + 7 ;
int main() {
int t;
cin >> t;
while(t--) {
int n;
cin >> n;
ll res = 0;
for(int l = 1, r; l <= n; l = r + 1) {
r = n / (n / l);
res += (r - l + 1) * (n / l);
}
cout << "1+2+3+...+" << n << "=" << res << endl;
}
return 0;
}
```
阅读全文