UVA 110 没有循环的排序程序
2012-08-08 16:13
260 查看
这个题意肿么这么纠结,米兴趣,转一篇
#include<cstdio> #include<string.h> #include<stdlib.h> #include <vector> using namespace std; void indent(int n) { for(int i=0;i<n;i++) printf(" "); } void make_prog(int cur,int n,const vector<int> &seq) { int i; if(cur==n) { indent(n); printf("writeln("); for(i=0;i<n;i++) { if(i>0) printf(","); printf("%c",'a'+seq[i]); } printf(")\n"); } else for(i=cur;i>=0;i--) { indent(cur); if(i<cur) printf("else "); if(i>0) printf("if %c < %c then",seq[i-1]+'a',cur+'a'); printf("\n"); vector<int>new_seq=seq; new_seq.insert(new_seq.begin()+i,cur); make_prog(cur+1,n,new_seq); } } int main() { int m; scanf("%d\n",&m); while(m--) { int n; scanf("%d\n",&n); printf("program sort(input,output);\nvar\n"); printf("a"); int i,j; for(i=1;i<n;i++) printf(",%c",'a'+i); printf(" : integer;\nbegin\n readln(a"); for(i=1;i<n;i++) printf(",%c",'a'+i); printf(");\n"); vector<int>seq; seq.push_back(0); make_prog(1,n,seq); printf("end.\n"); if(m) printf("\n"); } return 0; }
相关文章推荐
- uva110-Meta-Loopless Sorts(没有循环的排序程序)
- uva110 没有循环的排序程序
- UVa 110 没有循环的排序程序
- 汇编语言简单小程序——分支、循环和排序程序设计实验
- UVA110模拟出Pascal的8个数字的排序代码插入式递归
- uva 110 Meta-Loopless Sorts 用程序写程序 有点复杂的回溯水题
- uva 110 Meta-Loopless Sorts 用程序写程序 有点复杂的回溯水题
- Uva 110 - Meta-Loopless Sorts(!循环,回溯!)
- 下面程序为什么没有一直陷入main的while(1)循环?(多线程在作怪)
- 探究数组排序提升Python程序的循环的运行效率的原因
- STM32在线仿真出现是循环,使用mcuisp下载程序却可以运行,JTAG下载程序可以下载成功,却没有任何动作!
- UVA - 110 Meta-Loopless Sorts(元排序 回溯)
- 跳出程序的循环控制
- 发布qt程序发现中文乱码图片变没有变成黑色
- 微信小程序中的循环列表,在点击时改变当前项的背景颜色
- UVa202-Repeating Decimals-循环小数-字符串、模拟
- 实验六——循环结构程序练习总结
- C程序语言教程四(循环、函数、作用域等)
- 开发的一个android程序,总是显示无法运行,就退出了。但是没有报错。求大神解救啊!
- 设计程序:利用循环编写程序,帮助小学生练习10以内加减法