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

用AS完成的一著名软件公司的java笔试算法题!

2007-06-07 16:19 288 查看
  我曾在CSDN上看到这样的一个题目
http://community.csdn.net/Expert/topic/5294/5294835.xml?temp=3659784
原题如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412325等,要求:"4"不能在第三位,"3"与"5"不能相连。
(有198种)
 我在AS中试了试,结果成功了。:代码如下:

var a:Array=new Array(1,2,2,3,4,5)
var b:Array=new Array()
var k:Number=0
function myFar(ar:Array):Array
{
 var a:Array=new Array()
 for (var i=0;i<ar.length;i++)
 {
  a[i]=ar[i]
 }
 return a
}
function myFarr(arr:Array)
{
 aa=2
 var af:Array=new Array()
 var tr:Array=new Array()
 if(arr.length>0)
 {
  for (var i=0;i<arr.length;i++)
  {
   bb=9
   aa=2
   af=myFar(arr)
   tr[i]=b[af.length-1]=af.splice(i,1)
   if( ord(b[2])!=ord(4))
   {
    if(ord(tr[i])==ord(tr[i-1]))
    {
     aa=0
     
    }
    for (var j:Number=0;j<b.length;j++)
    {
     if(((ord(b[j])==ord(5))&&(ord(b[j+1])==ord(3)))||((ord(b[j])==ord(3))&&(ord(b[j+1])==ord(5))))
     {
      bb=0
     }
               
    }
    if(aa&&bb)
    {
     myFarr(af)
    }
   }
   b[af.length-1]=9
  }
  
 }
 else
 {
  trace(b.join(""))
  k++
 }
}
myFarr(a)
trace(k)

结果输出

543221
345221
542321
452321
523421
325421
432521
342521
542231
452231
425231
245231
522431
252431
225431
523241
325241
522341
252341
322541
232541
432251
342251
423251
243251
322451
232451
223451
543212
345212
542312
452312
523412
325412
432512
342512
543122
345122
541322
451322
513422
315422
431522
341522
542132
452132
425132
245132
541232
451232
415232
145232
521432
251432
512432
152432
215432
125432
523142
325142
513242
315242
521342
251342
512342
152342
321542
231542
312542
132542
432152
342152
423152
243152
431252
341252
413252
143252
321452
231452
312452
132452
213452
123452
542213
452213
425213
245213
522413
252413
225413
422513
242513
542123
452123
425123
245123
541223
451223
415223
145223
521423
251423
512423
152423
215423
125423
421523
241523
412523
142523
522143
252143
225143
521243
251243
512243
152243
215243
125243
221543
212543
122543
523214
325214
522314
252314
322514
232514
523124
325124
513224
315224
521324
251324
512324
152324
321524
231524
312524
132524
522134
252134
225134
521234
251234
512234
152234
215234
125234
322154
232154
223154
321254
231254
312254
132254
213254
123254
432215
342215
423215
243215
422315
242315
322415
232415
223415
432125
342125
423125
243125
431225
341225
413225
143225
421325
241325
412325
142325
321425
231425
312425
132425
213425
123425
322145
232145
223145
321245
231245
312245
132245
213245
123245
221345
212345
122345
198
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java function 算法