不吃饭的测试一班王亚洲


私信TA

用户名:uq_50763356421

访问量:97

签 名:

没有

等  级
排  名 3250
经  验 1983
参赛次数 10
文章发表 2
年  龄 19
在职情况 学生
学  校
专  业

  自我简介:

没有

参考代码:

#include<bits/stdc++.h>//c++万能头文件
using namespace std;//可以不写,不写的话在前面加上std::
int m, n;//定义两个变量用于承载m(能选的数)和n(个数)
int z[30];//定义一个数组用来承载数。
void c(int a, int b){//a是当前该输出的最小可能数用来控制循环,b是当前位数用来控制递归
    if(b==n+1){//判断位数是到最后一位
        for(int i=1;i<=n;i++){//到最后一位后开始输出数
            printf("%3d",z[i]);//一个一个的输出数字。%3d是控制它的站位,比如%03d输出3会是003;%.3d输出3会是3.000
        }//中括号
        printf("\n");//输出结束后,再补上一个换行
    } else {//判断位数不是到最后一位
        for(int i=a;i<=m;i++){//控制递归让这个数比上一个数大,并且不会超过m(能选的数)
            z[b]=i;//将z数组的b位置赋值成i
            c(i+1,b+1);//递归他自己
        }//中括号
    }//中括号
}//中括号
int main(){//主函数
    scanf("%d%d", &m, &n);//导入n(能选的数)和r(个数)
    c(1, 1);//进入c函数
    return 0;//程序结束返回0
}//中括号


 

0.0分

3 人评分

  评论区

  • «
  • »