9 solutions
-
3
这题其实很简单,我用的是最麻烦的方式,分4类:1,m,n都是奇数 2,m是奇数,n是偶数 3,m是偶数,n是奇数 4,m,n都是偶数
然后后面解析看代码
#include <bits/stdc++.h> using namespace std;
int jishu[310];
int main() { int m, n, sum = 0; cin >> m >> n; for(int i = 1; i <= 300; i++) { jishu[i] = 2 * i - 1; } //这一部分是预先分布,可以看作是一个300项的奇数数列,可以避免重复求和,后面只需引用里面的数即可 if(m % 2 == 1 && n % 2 == 1) for(int i = (m+1)/2; i <= (n+1)/2; i++) sum += jishu[i]; else if(m % 2 == 0 && n % 2 == 1) { int m1 = m + 1; for(int i = (m1 + 1)/2; i <= (n+1)/2; i++) sum += jishu[i]; } else if(m % 2 == 1 && n % 2 == 0) for(int i = (m + 1)/2; i <= n /2; i++) sum += jishu[i]; else if(m % 2 == 0 && n % 2 == 0) { int m1 = m + 1; for(int i = (m1 + 1)/2; i <= n/2; i++) sum += jishu[i]; } cout << sum << endl; return 0; }
- 1
Information
- ID
- 554
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 4
- Tags
- # Submissions
- 195
- Accepted
- 88
- Uploaded By