Contest5577 - AK郦老师 初级B班 自调用函数巩固 家庭作业

请使用自调用函数完成这些练习题!
函数里不要使用for循环~尝试一下不一样的解题思路和思考方式。

比如:
void f(int i, int j, int k) {

// 1. 结束条件

if(???) return;

// 2. 具体做什么

???

// 3. 下一步做什么

f(???);

}



主函数里调用f函数,传入初始条件即可



以 2263 Problem  F 三色球 为例:



#include <bits/stdc++.h>
using namespace std;
int n;

void f(int i, int j, int k) {
  if (i > 3) return;

  if (j > 3) {
    f(i + 1, 0, 0);
    return;
  }

  if (k > 6) {
    f(i, j + 1, 0);
    return;
  }

  if (i + j + k == n) {
    cout << i << " " << j << " " << k << endl;
  }
  f(i, j, k + 1);
}

int main() {
  cin >> n;
  f(0, 0, 0);
  return 0;
}


Start Time: 2026-01-10 17:30:00 End Time: 2026-01-18 22:00:00
Current Time: 2026-01-22 06:40:46
Status:Ended   Public
[Status] [Standing] [Statistics]
Problem IDTitle Source/Category AC Submit
4024 Problem  A 自调用函数-输出n个n 基础A 4 4
2419 Problem  B 穷举法练习---操场点兵 基础C 4 4
2316 Problem  C 双重循环-数字分离练习 基础B 3 3
4025 Problem  D 自调用函数-输出1个1到n个n 基础A 3 3
2417 Problem  E 穷举法练习---鸡兔同笼 基础C 4 4
2263 Problem  F 穷举法-三色球练习 基础B 2 2
2264 Problem  G 穷举法-以物易物练习 基础B 0 0
2267 Problem  H 穷举法-搬砖问题练习 基础B 1 1