C++ 代码实现:将正整数分解为连续正整数之和
#include
int main() { int n; cin >> n; int cnt = 0; // 表示方案总数 for (int i = 1; i * (i + 1) / 2 <= n; i++) { // 枚举起点 i int sum = i * (i + 1) / 2; // 计算以 i 为起点的连续正整数和 if ((n - sum) % (i + 1) == 0) { // 判断是否满足条件 cnt++; } } cout << cnt << endl; // 输出方案总数 for (int i = 1; i * (i + 1) / 2 <= n; i++) { // 再次枚举起点 i int sum = i * (i + 1) / 2; // 计算以 i 为起点的连续正整数和 if ((n - sum) % (i + 1) == 0) { // 判断是否满足条件 int j = (n - sum) / (i + 1) + i; // 计算终点 j cout << i << ' ' << j << endl; // 输出方案 } } return 0; }
原文地址: https://www.cveoy.top/t/topic/opVN 著作权归作者所有。请勿转载和采集!