社区讨论

也可以用规律解决

P1147连续正整数和参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@mks7bi1d
此快照首次捕获于
2026/01/24 19:03
4 周前
此快照最后确认于
2026/01/24 19:11
4 周前
查看原帖
CPP
//
// Created by wei on 2026/1/24.
//
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef long long ll;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);

	int m;cin>>m;
	for (int i=m/2+1;i>=2;i--) {//times
		if (m%i==0) {
			if (i%2==0)continue;
			if (m/i-i/2>0)
			cout<<m/i-i/2<<' '<<m/i+i/2<<endl;
		}
		else if (m%i==i/2&&i%2==0) {
			if (m/i-i/2+1>0)
			cout<<m/i-i/2+1<<' '<<m/i+i/2<<endl;
		}
	}
	return 0;
}
发现到 , 1.当k∈偶数时,如果m%k==k/2,那么 [m/k-k/2+1,m/k+k/2]这个范围的和一定符合题意
2.当k∈奇数时,如果m%k==0&&m/i-i/2>0(m/i-i/2是连加的第一个数,要大于0),那么 [m/i-i/2,m/i+i/2]这个范围也一定符合题意
其它情况continue即可

回复

4 条回复,欢迎继续交流。

正在加载回复...