# re: 一道java算法题
2007-03-13 16:50
LeeYue_0530@hotmail.com
//不知道我这样写算不算 算法
void arithmetic1()
{
/*******
* 用1,2,2,3,4,5,这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234,412345等,要求:“4”不能排第3位,“1”与“5”不能相连。
* @author kafka0102
*
*/
char[] numbers = {'1','2','2','3','4','5'};
int startNum = 122345;
int endNum = 543221;
for(int i = startNum ; i < endNum ;i++)
{
String tmpNumber = String.valueOf(i);
if(
//循环数字符合数据的判断
tmpNumber.indexOf("1") != -1
&& tmpNumber.indexOf("3") != -1
&& tmpNumber.indexOf("4") != -1
&& tmpNumber.indexOf("5") != -1
&& countOf2(tmpNumber,'2')
//符合要求:“4”不能排第3位
&& tmpNumber.indexOf("4") != 2
//符合要求:“1”与“5”不能相连判断
&& tmpNumber.indexOf("1")+1 != tmpNumber.indexOf("5")
&& tmpNumber.indexOf("5")+1 != tmpNumber.indexOf("1")
)
{
System.out.println(tmpNumber);
}
}
}
boolean countOf2(String s,char c)
{
int count = 0;
for(int i = 0 ; i < s.length() ; i++)
{
if(c == s.charAt(i))
{
count++;
}
}
if(count == 2)
{
return true;
}
else
{
return false;
}
} 回复 更多评论