问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

n重循环问题: 怎样写一个n重的循环?n是输入的值。语言不限,(最好是C\c++ 、vb.net 或c#的)

发布网友 发布时间:2022-05-12 19:22

我来回答

3个回答

热心网友 时间:2023-10-19 12:46

谁告诉你这种问题要用n重循环来写了…………………………
要是n=10000,你还不把电脑憋炸了…………………………
编程的时候要尽量减少循环的层数,5以内没关系,但要是你打算弄个n层的循环,那就扯死了……
顺便一说,没有这种写法。

不过就你说的这个问题而言,不是n重,而是2重……无非多设一个“已经选过的数字”的数组,查一下就好了。
for n次循环输出n个数
for 从1到9
if 还没输出过 输出并添加至已输出数组
else 跳过去

这是两重循环,可不是n重循环……不要想n重循环……追问老大,我说了n是个变量,写程序时是不知道的,我只是举例子说n=2,用户可以能输入的是3,4,等

热心网友 时间:2023-10-19 12:46

//c++ code
#include <iostream>
#include <vector>
using namespace std;

// Recursive template function
template <class RanIt, class Func>
void recursive_combination(RanIt nbegin, RanIt nend, int n_column,
RanIt rbegin, RanIt rend, int r_column,int loop, Func func)
{
int r_size=rend-rbegin;

int localloop=loop;
int local_n_column=n_column;

//A different combination is out
if(r_column>(r_size-1))
{
func(rbegin,rend);
return;
}
//===========================

for(int i=0;i<=loop;++i)
{
RanIt it1=rbegin;
for(int cnt=0;cnt<r_column;++cnt)
{
++it1;
}
RanIt it2=nbegin;
for(int cnt2=0;cnt2<n_column+i;++cnt2)
{
++it2;
}

*it1=*it2;

++local_n_column;

recursive_combination(nbegin,nend,local_n_column,
rbegin,rend,r_column+1,localloop,func);
--localloop;
}
}

typedef vector<int>::iterator vii;
void display(vii begin,vii end)
{
for (vii it=begin;it!=end;++it)
cout<<*it;
cout<<endl;
}
int main()
{
vector<int> ca;
ca.push_back (1);
ca.push_back (2);
ca.push_back (3);
ca.push_back (4);
ca.push_back (5);
ca.push_back (6);
ca.push_back (7);
ca.push_back (8);
ca.push_back (9);
vector<int> cb;
int n_input;
cout << "Please input the number n:";
cin>>n_input;
for(int i=0;i<n_input;++i)
cb.push_back(i+1);
recursive_combination(ca.begin (),ca.end(),0,
cb.begin(),cb.end(),0,9-n_input,display);
cout<<"Complete!"<<endl;
return 0;
}

热心网友 时间:2023-10-19 12:46

char x[ n+1 ]= { 0 };
while(1)
{
x[0]++:
for(int i=0; i<n; i++ )
{
if(x[i]==10)
{
x[i+1]++;
x[i]= 0;
}
}
if(x[n]==1)
break;
else
printf("...");
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
发摅解释 摅的组词有哪些 摅字能组哪些词 检测电脑配置的软件电脑硬件检测权威软件有哪几个 查看电脑参数的软件什么软件可以全面检测显示出电脑硬件参数数据_百度... 有没有可以查自己电脑配置的软件啊??? 芯片程序解密哪家好 ...文章怎么突然间阅读量开始大减,从几百掉到个位数。 百家号怎么才个位数播放量?个位数播放量怎么算? 保本收益投资合法吗 local loop是什么意思 英语local loop怎么翻译? 什么码能够表示一个人从新开始? 超力包装(苏州)有限公司 怎么样? 微信重新注册了,怎么找回以前那个? 眉县瀚瑞果品包装有限公司怎么样? 广西南宁市珍品水果包装材料有限公司怎么样? 第二次工业革命及其影响 贡菜怎样做比较好吃 德国第二次工业革命的贡献 第二次工业革命的作用 我想重新注册一个新的,该怎么办? 简单分析一下德国为什么会引领第二次工业革命 两次工业革命对人类历史发展有什么积极意义 两次工业革命的背景特点作用是什么? 团结力量大作文的开头 有关集体的作文! 关于集体的力量的作文题目 客厅带阳台好还是卧室带阳台好 客厅带小阳台怎么装修 水果包装工作好还是电子厂好? 有没有需要水果包装的? 禁用/启用本地连接的dos命令是什么啊? 英语高手进来帮我翻译一下,我谢谢您了,只有5分了全部给吧 打开本地连接的DOS命令是什么? 柜台车险和电话车险的区别 柜台险和电话车险的区别 电话车险和柜台有什么区别 PIC单片机汇编语言求助 柜台与电话车险的区别 子网掩码是什么?回路IP 127.0.0.1 有什么用? 电话车险和柜台办理有什么区别 电话车险和柜台险的区别 电话车险和柜台的区别 电话车险与柜台车险赔付的区别 电话车险和柜台保险的区别 人保电话车险 柜台车险的区别 陈道民资料! 大冶陈道磨家具厂在哪 陇西书法陈道之老师的忠堂多少钱