求方程3x+y=k的正整数解。其中k为整数,由用户输入

输入一个正整数: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;
}