用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列
2014-07-09 19:30
399 查看
用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列,如:512234、412345等
要求:"4"不能在第三位,"3"与"5"不能相连.
此题目和此前一个博客类似(里面有详细解释),只是加上一个过滤函数排除不需要的就可以了。
要求:"4"不能在第三位,"3"与"5"不能相连.
此题目和此前一个博客类似(里面有详细解释),只是加上一个过滤函数排除不需要的就可以了。
#include<iostream.h> bool IsValid( char *str )//过滤函数 { for( int i=1; *(str+i) != '\0'; i++ ) { if( i == 2 && *(str+i) == '4' ) return false; if( *(str+i) == '3' && *(str+i-1) == '5' || *(str+i) == '5' && *(str+i-1) == '3' ) return false; } return true; } bool repeatnumber(char *bg,char *pch) { bool f=false; for(char *q=bg;q!=pch;q++) if(*q==*pch) { f=true; break; } return f; } void pailie(char *ch,char *bg) { if(*bg=='\0') cout<<ch<<endl; else { char tmp; for(char *pch=bg;*pch!='\0';pch++) { /*为了防止字符串中有相同的字符而造成排除的序列一样 而设置repeatnumber()函数进行检查,从bg到pch-1中间是不是 有和pch相同的字符,如果有就说明已经和前面的bg互换完成 不需要继续互换否则就会重复直接下一步 */ if(bg!=pch&&repeatnumber(bg,pch)) continue; tmp = *bg; *bg = *pch;//开始这里面一直报错,错误原因如下图,感谢csdn网友Fire_Lord的帮助 *pch = tmp; sequence(ch,bg+1); tmp = *bg; *bg = *pch; *pch = tmp; } } } void main() { char ch[]="122345"; pailie(ch,ch); }
相关文章推荐
- 面试题─用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
- 面试题─用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
- 用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列
- 用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列
- Java经典算法集——如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连.
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。用1、2、2、3、4、5这六
- 该公司笔试题就1个,要求在10分钟内作完。 题目如下:用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列, 如:512234、412325等,要求:"4"不能在第三位,"3"与"5"不能相连。
- 1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234、412345等.要求:"4"不能在第三位,"3"与"5"不能相连.
- // 40、用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列, // 如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连.
- 用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列, 如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连.
- 用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。
- 2013年用友校招编程题:用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列
- 用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列
- 编程:用java 语言实现,输入一个数,就相应地输出的几维数组!||用1、2、2、3、4、5这六个数字,用java写一个函数,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连
- 用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连
- 用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。
- 用 1,2,2,3,4,5 六个数字,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连