回答編集履歴
1
説明不足
    
        answer	
    CHANGED
    
    | 
         @@ -1,3 +1,55 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ヒントだけでも良いとの事なので置いておきます。
         
     | 
| 
       2 
2 
     | 
    
         
             
            なんとなく再帰処理っぽい気はするのですが……。
         
     | 
| 
       3 
     | 
    
         
            -
            
         
     | 
| 
      
 3 
     | 
    
         
            +
            
         
     | 
| 
      
 4 
     | 
    
         
            +
            【追記】
         
     | 
| 
      
 5 
     | 
    
         
            +
            表は[4,0,1,5]とかを、4015(7進数)などに見立てて数を調べた結果です。
         
     | 
| 
      
 6 
     | 
    
         
            +
            プログラムは以下。
         
     | 
| 
      
 7 
     | 
    
         
            +
            ```VBA
         
     | 
| 
      
 8 
     | 
    
         
            +
            '注意:下手にketaとかsinsuに大きな数字(10以上とか)を入れると、あっという間に固まります。
         
     | 
| 
      
 9 
     | 
    
         
            +
            Sub Macro1()
         
     | 
| 
      
 10 
     | 
    
         
            +
                Dim keta As Double
         
     | 
| 
      
 11 
     | 
    
         
            +
                Dim sinsu As Double
         
     | 
| 
      
 12 
     | 
    
         
            +
                Dim ans As Double
         
     | 
| 
      
 13 
     | 
    
         
            +
                
         
     | 
| 
      
 14 
     | 
    
         
            +
                Dim i As Double
         
     | 
| 
      
 15 
     | 
    
         
            +
                Dim mstr_i As String
         
     | 
| 
      
 16 
     | 
    
         
            +
                Dim tmpsinsu As Double
         
     | 
| 
      
 17 
     | 
    
         
            +
                
         
     | 
| 
      
 18 
     | 
    
         
            +
                keta = 3
         
     | 
| 
      
 19 
     | 
    
         
            +
                sinsu = 4
         
     | 
| 
      
 20 
     | 
    
         
            +
                
         
     | 
| 
      
 21 
     | 
    
         
            +
                ans = 0
         
     | 
| 
      
 22 
     | 
    
         
            +
                i = 0
         
     | 
| 
      
 23 
     | 
    
         
            +
                While i < sinsu ^ keta
         
     | 
| 
      
 24 
     | 
    
         
            +
                    mstr_i = S10_2(i, sinsu)
         
     | 
| 
      
 25 
     | 
    
         
            +
                    tmpsinsu = 0
         
     | 
| 
      
 26 
     | 
    
         
            +
                    mstr_i = Replace(mstr_i, "0", "")   '先に0を抜いとく
         
     | 
| 
      
 27 
     | 
    
         
            +
                    While Len(mstr_i) Mod 2 = 0 And Len(mstr_i) <> 0
         
     | 
| 
      
 28 
     | 
    
         
            +
                        mstr_i = Replace(mstr_i, CStr(tmpsinsu), "")
         
     | 
| 
      
 29 
     | 
    
         
            +
                        tmpsinsu = tmpsinsu + 1
         
     | 
| 
      
 30 
     | 
    
         
            +
                    Wend
         
     | 
| 
      
 31 
     | 
    
         
            +
                    If Len(mstr_i) = 0 Then
         
     | 
| 
      
 32 
     | 
    
         
            +
                        ans = ans + 1
         
     | 
| 
      
 33 
     | 
    
         
            +
                    End If
         
     | 
| 
      
 34 
     | 
    
         
            +
                    i = i + 1
         
     | 
| 
      
 35 
     | 
    
         
            +
                Wend
         
     | 
| 
      
 36 
     | 
    
         
            +
                
         
     | 
| 
      
 37 
     | 
    
         
            +
                MsgBox "sinsu=" & sinsu & " keta=" & keta & " ans=" & ans
         
     | 
| 
      
 38 
     | 
    
         
            +
            End Sub
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            '10進→2進
         
     | 
| 
      
 41 
     | 
    
         
            +
            Function S10_2(X As Double, sin As Double) As String
         
     | 
| 
      
 42 
     | 
    
         
            +
                Dim XX As Double
         
     | 
| 
      
 43 
     | 
    
         
            +
                Dim Y As String
         
     | 
| 
      
 44 
     | 
    
         
            +
                XX = X
         
     | 
| 
      
 45 
     | 
    
         
            +
                If (XX < 0) Then
         
     | 
| 
      
 46 
     | 
    
         
            +
                    Y = "Error"
         
     | 
| 
      
 47 
     | 
    
         
            +
                Else
         
     | 
| 
      
 48 
     | 
    
         
            +
                    Do
         
     | 
| 
      
 49 
     | 
    
         
            +
                        Y = XX Mod sin & Y
         
     | 
| 
      
 50 
     | 
    
         
            +
                        XX = XX \ sin
         
     | 
| 
      
 51 
     | 
    
         
            +
                    Loop While (XX > 0)
         
     | 
| 
      
 52 
     | 
    
         
            +
                End If
         
     | 
| 
      
 53 
     | 
    
         
            +
                S10_2 = Y
         
     | 
| 
      
 54 
     | 
    
         
            +
            End Function
         
     | 
| 
      
 55 
     | 
    
         
            +
            ```
         
     |