您的位置:首页 > 编程语言 > Java开发

用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。

2015-03-13 08:58 1061 查看
方法一
public static void main(String[] args) {
<span style="white-space:pre">	</span>int su[]={1,2,2,3,4,5};
<span style="white-space:pre">	</span>for(int i=122345;i<543221;i++){
<span style="white-space:pre">		</span>char s[]=new Integer(i).toString().toCharArray();
<span style="white-space:pre">		</span>int s1=0;int s2=0;int s3=0;int s4=0;int s5=0;boolean flag=true;
<span style="white-space:pre">		</span>for(int j=0;j<s.length;j++){
<span style="white-space:pre">			</span>if(s[j]=='1'){s1++;}
<span style="white-space:pre">			</span>if(s[j]=='2'){s2++;}
<span style="white-space:pre">			</span>if(s[j]=='3'){s3++;}
<span style="white-space:pre">			</span>if(s[j]=='4'){s4++;}
<span style="white-space:pre">			</span>if(s[j]=='5'){s5++;}
<span style="white-space:pre">			</span>if(j!=s.length-1){
<span style="white-space:pre">				</span>if(s[j]=='3'&&s[j+1]=='5'||s[j]=='5'&&s[j+1]=='3')
<span style="white-space:pre">				</span>{flag=false;}
<span style="white-space:pre">			</span>}
<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>if(s[2]=='4'){
<span style="white-space:pre">			</span>flag=false;
<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>if(s1==1&&s2==2&&s3==1&&s4==1&&s5==1&&flag){
<span style="white-space:pre">			</span>System.out.println(i);
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}

}

方法二

ArrayList<Integer> intAry= new ArrayList<Integer>();
private boolean validate(String s,int []arry)
{
for(int tempInt : arry){
<span style="white-space:pre">		</span>if(tempInt == Integer.parseInt(s){return false;}
<span style="white-space:pre">	</span>}
if (s.charAt(2) == '4')//"4"不能在第三位
{
return false;
}
if (s.indexOf("35") >= 0 || s.indexOf("53") >= 0)//"3"与"5"不能相连
{
return false;
}
intAry.add(Integer.parseInt(s));
return true;      }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐