排列2 全排列 小咪咪 2024-02-18 22:39 72阅读 0赞 <table> <tbody> <tr> <td> <h2>排列2</h2> <strong>Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)<br> Total Submission(s): 10966 Accepted Submission(s): 3887</strong><br><br> <p>Problem Description</p> <p>Ray又对数字的列产生了兴趣:<br> 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数。</p> <p> </p> <p>Input</p> <p>每组数据占一行,代表四张卡片上的数字(0<=数字<=9),如果四张卡片都是0,则输入结束。</p> <p> </p> <p>Output</p> <p>对每组卡片按从小到大的顺序输出所有能由这四张卡片组成的4位数,千位数字相同的在同一行,同一行中每个四位数间用空格分隔。<br> 每组输出数据间空一行,最后一组数据后面没有空行。</p> <p> </p> <p>Sample Input</p> <pre><code> </code></pre> <p>1 2 3 4 1 1 2 3 0 1 2 3 0 0 0 0</p> <p> </p> <p>Sample Output</p> <pre><code> </code></pre> <p>1234 1243 1324 1342 1423 1432 2134 2143 2314 2341 2413 2431 3124 3142 3214 3241 3412 3421 4123 4132 4213 4231 4312 4321 1123 1132 1213 1231 1312 1321 2113 2131 2311 3112 3121 3211 1023 1032 1203 1230 1302 1320 2013 2031 2103 2130 2301 2310 3012 3021 3102 3120 3201 3210</p> <p> </p> <p>思路:找到第一个不为零的数,让他前面的零与之相替换,设两个变量,一个管换行,一个管空格</p> <p> </p> <p> #include<iostream><br> #include<algorithm><br> using namespace std;<br> int main()<br> { <br> int a[4];<br> int i,j,k,t=0;<br> while(~scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]),a[0]||a[1]||a[2]||a[3])<br> { <br> int e=-1;<br> if(a[0]==0&&a[1]==0&&a[2]==0&&a[3]==0)<br> break;<br> if(t++)<br> cout<<endl;<br> sort(a,a+4);<br> <br> k=1;<br> for(i=0;i<4;i++)<br> if(a[i]!=0)<br> { <br> e=a[i];<br> for(j=0;j<i;j++)<br> a[j+1]=a[j];<br> a[0]=e;<br> break;<br> }<br> if(a[0]!=0)<br> cout<<a[0]<<a[1]<<a[2]<<a[3];<br> while(next_permutation(a,a+4))<br> { <br> if(e==a[0])<br> { <br> <br> e=a[0];<br> }<br> else<br> { <br> cout<<endl;<br> e=a[0];<br> k=0;<br> }<br> if(k==0)<br> printf("%d%d%d%d",a[0],a[1],a[2],a[3]);<br> else<br> printf(" %d%d%d%d",a[0],a[1],a[2],a[3]);<br> k++;<br> <br> <br> }<br> cout<<endl;<br> }<br> return 0;<br> }</p> </td> </tr> </tbody> </table>
相关 排列2 全排列 <table> <tbody> <tr> <td> <h2>排列2</h2> <strong>Time Limit: 1000/1000 MS (Java/O 小咪咪/ 2024年02月18日 22:39/ 0 赞/ 73 阅读
相关 全排列 问题描述:设有\{r1,r2,...,rn\}共n个元素,这n个元素中可能存在重复元素,试设计一个算法,列出这n个元素的不同排列。 参考代码: inclu 电玩女神/ 2022年08月05日 02:54/ 0 赞/ 230 阅读
相关 全排列 全排列 给出一个字符串或整数数组,对这个字符串或整数数组进行全排列 例如:\{1, 2, 3\} 数组,对这个整数数组进行全排列。 递归实现 实现 以你之姓@/ 2022年07月17日 15:25/ 0 赞/ 254 阅读
相关 全排列 标题:带分数 100 可以表示为带分数的形式:100 = 3 + 69258 / 714 还可以表示为:100 = 82 + 3546 / 197 注意特征:带分数 今天药忘吃喽~/ 2022年06月18日 09:51/ 0 赞/ 212 阅读
相关 全排列 方法一:采用递归的方式例子1、将数组int arr\[4\]=\{1,2,3,4\}进行全排列 static int n = 0; void Perm( ﹏ヽ暗。殇╰゛Y/ 2022年06月17日 06:19/ 0 赞/ 248 阅读
相关 全排列 题目描述 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], 以你之姓@/ 2022年04月25日 06:54/ 0 赞/ 247 阅读
相关 全排列 全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个。现以\{1, 2, 3, 4, 5\}为 例说明如何编写全排列的递归算法。 1、首先看 男娘i/ 2022年03月19日 01:50/ 0 赞/ 293 阅读
相关 全排列 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输 约定不等于承诺〃/ 2022年02月15日 00:47/ 0 赞/ 313 阅读
相关 全排列 talk is cheap, show me the code. public static void permutation(char[]ss,int i){ 蔚落/ 2022年01月29日 04:55/ 0 赞/ 333 阅读
还没有评论,来说两句吧...