一.题目
1.输入描述:
2.输出描述:
输出一个整数, 表示前n项和。
输入例子1:
8 2
输出例子1:
8
二.题解
1.题解思路:
- 法一.从1到n进行遍历相加,每隔m个数,反转系数;
- 法二.数学归纳。
2.题解代码:
法一:
#include <iostream>
using namespace std;
int main(){
long long n,m;
int flag=-1;
cin>>n>>m;
long long ans=0,count=0,tmp=m;
for(int i=1;i<=n;i++){
if(count==tmp){
tmp+=m;
flag*=-1;
}
ans=ans+i*flag;
count++;
}
cout<<ans<<endl;
}
法二:
#include<iostream>
using namespace std;
typedef long long LL;
int main()
{
LL n, m;
cin >> n >> m;
cout<<n*m/2<<endl;
}
题目来源:牛客网
https://www.nowcoder.com/