用AspJpeg组件,按宽高比例,真正生成缩略图

laifangsong's .NET blog

取长补短,精益求精。 (打个广告,想做手机网站和asp/asp.net网站的可以跟我联系.QQ:25313644)
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

排列组合问题。

Posted on 2006-10-16 16:40  laifangsong  阅读(864)  评论(7编辑  收藏  举报

<%

'算法程序题:
    '该公司笔试题就1个,要求在10分钟内作完。
    '题目如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,
    '如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连
    

    
Dim i, i1, i2, i3, i4, i5, i6 '循环变量
    Dim t1, t2, t3, t4, t5 '临时变量
    Dim pre, cur '上一位,当前位
    Dim num '生成的数字串
    Dim appear(5'判断某个数字是否出现过的数组 例:appear(1)的值为0表示1没有出现过,值为1表示1出现过 

    pre 
= 0 '初始化为一个不相关的数字
    For i = 1 To 5
        appear(i) 
= 0
    
Next

    
    
For i1 = 1 To 5
        cur 
= i1
        
If Not(pre = 3 And cur = 5And Not(pre = 5 And cur = 3Then
            pre 
= cur
            
            
For i2 = 1 To 5
                t1 
= pre '保护pre的值,防止在下面的操作中值被改变
                cur = i2
                
If Not(pre = 3 And cur = 5And Not(pre = 5 And cur = 3Then
                    pre 
= cur
                    
                    
For i3 = 1 To 5
                        t2 
= pre
                        cur 
= i3
                        
If Not(pre = 3 And cur = 5And Not(pre = 5 And cur = 3Then
                            
If cur <> 4 Then
                                pre 
= cur
                                
                                
For i4 = 1 To 5
                                    t3 
= pre
                                    cur 
= i4
                                    
If Not(pre = 3 And cur = 5And Not(pre = 5 And cur = 3Then
                                        pre 
= cur
                                        
                                        
For i5 = 1 To 5
                                            t4 
= pre
                                            cur 
= i5
                                            
If Not(pre = 3 And cur = 5And Not(pre = 5 And cur = 3Then
                                                pre 
= cur
                                                
                                                
For i6 = 1 To 5
                                                    t5 
= pre
                                                    cur 
= i6
                                                    
If Not(pre = 3 And cur = 5And Not(pre = 5 And cur = 3Then
                                                        
                                                        appear(i1) 
= 1 '给出现过的数字打上标识
                                                        appear(i2) = 1
                                                        appear(i3) 
= 1
                                                        appear(i4) 
= 1
                                                        appear(i5) 
= 1
                                                        appear(i6) 
= 1

                                                        
If appear(1= 1 And appear(2= 1 And appear(3= 1 And appear(4= 1 And appear(5= 1 Then '组合成的结果中所有数字必须都出现过
                                                            num = i1 & i2 & i3 & i4 & i5 & i6
                                                            response.write num 
& "<br />"
                                                            num 
= ""
                                                        
End If
                                                        
For i = 1 To 5
                                                            appear(i) 
= 0
                                                        
Next

                                                    
End If
                                                    pre 
= t5
                                                
Next

                                            
End If
                                            pre 
= t4
                                        
Next
                                        
                                    
End If
                                    pre 
= t3
                                
Next

                            
End If
                        
End If
                        pre 
= t2
                    
Next

                
End If
                pre 
= t1 '还原pre的值
            Next

        
End If

        pre 
= 0 '还原pre的值
    Next
    

%
>