输入一个正整数:23
方程的正整数解有:(1,20)(2,17)(2,14) (4,11) (5,8)(6,5)(7,2)
可以通过枚举的方式求解方程3x+y=k的正整数解。首先我们可以确定y的最小值为1,然后枚举x从0开始逐个增加,直到3x大于等于k为止。对于每个x值,计算对应的y值是否为正整数,如果是,则输出解。
#include <stdio.h>
int main()
{
int k;
printf("请输入k:");
scanf("%d", &k);
int x, y;
for (y = 1; y <= k; y++) {
for (x = 0; 3 * x <= k; x++) {
if (3 * x + y == k) {
printf("(%d, %d)\n", x, y);
}
}
}
return 0;
}