倍数序列
时间限制:1s
内存限制:128M
开始编程
题目描述
【题目描述】
要求找到一个正整数序列,满足序列中所有的数不超过nn,序列长度为mm,且除了第一个数外,所有的数都能被前一个数整除(即是前一个数的倍数)。
我们想要知道这样的序列都有哪些,输出所有满足要求的序列。
输入格式
第一行,两个正整数nn,mm。
输出格式
按字典序从小到大,每行输出一个满足要求的序列,数与数之间用空格分隔。
输入样例#1
输入#1
4 3
输出样例#1
输出#1
1 1 1
1 1 2
1 1 3
1 1 4
1 2 2
1 2 4
1 3 3
1 4 4
2 2 2
2 2 4
2 4 4
3 3 3
4 4 4
【样例说明】
以下13个数列满足条件
1,1,11,1,1;1,1,21,1,2;1,1,31,1,3;1,1,41,1,4;
1,2,21,2,2;1,2,41,2,4;1,3,31,3,3;1,4,41,4,4;
2,2,22,2,2;2,2,42,2,4;2,4,42,4,4;
3,3,33,3,3;4,4,44,4,4。
说明/提示
1 \le n \le 401≤n≤40;1 \le m \le 201≤m≤20
C++ 倍数序列 要求找到一个正整数序列
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 诺er~ 2021-08-15 20:00关注
这样是否更好理解?求看;不理解请私信哦
#include<bits/stdc++.h> using namespace std; int n,m; int a[10010]; void dfs(int step,int num) { if(step>m) { for(int i=1;i<=m;i++) { cout<<a[i]<<" "; } cout<<endl; return ; } for(int i=0;i<=n-num;i++) { a[step]=num+i; if(a[step]%a[step-1]==0) dfs(step+1,a[step]); } } int main() { a[0]=1; cin>>n>>m; dfs(1,1); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘