2017年2月20日 星期一

Z2AY7M2練習-1

105正-F5P22 最大公約數計算    

105正-F5P11 計算字數                               

105正-F5P12 摩斯電碼

105正-F4P21 網段ID

105模-M5P11 質數

105模-M5P22 行、字數、字元數

105模-M5P41 尋找對稱字串

105模-M5P42 十進制轉二進制

105模-M5P21 前綴字串and後綴字串

補充大數 N! (0<N<1000)             

內建函式整理: ======================

1.s.split(ds) '以 ds 為分隔字,將字串s分成多個資料,傳回陣列
   例: s="1,23,4" : dim dat() = s.split(",")
     會傳回dat為三個元素:dat(0)="1"、dat(1)="23"、dat(2)="4"
2.UBound(dat):取得陣列dat的最大註標值傳回數值
   以上例:會傳回 2,就是dat的最大註標元素為dat(2)
3.Trim(s):將字串 s 的最左及最右空白刪除傳回字串
4.Instr(s1,s2):在字串s1中找看是否有s2,若沒有傳回 0 ,有則傳回位置
5.s.replace(s1,s2):在字串s中找第1個s1有找到換成s2,傳回換好的字串

======================================



105正式P22:最大公約數計算================================

   Function P22(ByVal s As String) As Integer
        Dim dat() = s.Split(",") '以空白分割
        Dim g As Integer
        P22 = 1
        For j = 0 To UBound(dat) - 1   ' 兩兩求gcd,所有中 找最大
            For k = j + 1 To UBound(dat)
                g = gcd(dat(j), dat(k))
                If g > P22 Then P22 = g
            Next
        Next j
    End Function
    Function gcd(ByVal a As Integer, ByVal b As Integer) As Integer
        Dim r As Integer = a Mod b
        Do Until r = 0
            a = b
            b = r
            r = a Mod b
        Loop
        Return b
    End Function
105正式P11:計算字數================================
    Function P11(ByVal s As String) As Integer
        P11 = 0
        ttrim(s, "  ", " ") '呼叫 ttrim自訂副程式,將多個空格改為1個
        Dim dat() = s.Split(" ")
        Return dat.Length
    End Function

    Sub ttrim(ByRef s As String, ByVal a As String, ByVal b As String)
        s = Trim(s)  ' trim是內建函式,去首尾的空白
        Do While (InStr(s, "  ") > 0) '有兩個空白傳回值>0
            s = s.Replace("  ", " ")
        Loop

    End Sub

補充大數 N! (0<N<1000)=========================
Public Class Form1
    ' 建一個標籤 Label1,一個按鈕 Button1
    Const MaxN As Integer = 2600 ' 1000! 2568 位數
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a(MaxN) As Integer
        Dim an As Integer = 1  ' 1!=1 ,一位數
        a(0) = 1
        Dim n As Integer = InputBox("輸入n 1~1000")
        For k = 2 To n
            bmuli(a, an, k)
        Next
        Label1.Text = printn(a, an) & vbNewLine
    End Sub
    Sub bmuli(ByVal a() As Integer, ByRef an As Integer, ByVal k As Integer)
        ' 大數 a 整數 k
        For i = 0 To an - 1
            a(i) *= k
        Next
        an += 3
        For i = 0 To an - 1
            If a(i) >= 10 Then
                a(i + 1) += (a(i) \ 10)
                a(i) = a(i) Mod 10
            End If
        Next
        Do While an >= 0 AndAlso a(an) = 0
            an -= 1
        Loop
        an += 1
        If an = 0 Then an = 1
    End Sub
    Function printn(ByVal a() As Integer, ByVal an As Integer) As String
        ' a 陣列倒轉列出 => 字串 ans 轉回 ans
        Dim ans = ""
        For i = an - 1 To 0 Step -1
            ans &= a(i)
        Next
        Return ans
    End Function


End Class
' 範例輸入
10
20
50
88
==============
'範範例輸出
3628800
2432902008176640000
30414093201713378043612608166064768844377641568960512000000000000
185482642257398439114796845645546284380220968949399346684421580986889562184028199319100141244804501828416633516851200000000000000000000


Related Posts:

  • To Z2A 程式選訓(2018-124) 資2忠程式選訓   寒輔進度 http://rs-vb.blogspot.tw/2017/04/z2ay7m3-7-17-4.html  去年的練習題(各年較簡單題型) http://rs-vb.blogspot.tw/2017/12/to-z2a.ht… Read More
  • M2P12:102模P12樂透 及Z2A程式 8/29題目參考 M2P11 : 102模P11 字串中的阿拉伯數字   http://rs-vb.blogspot.tw/2016/10/z2am2p11.html M3P11 : 103模P11 判斷是否為質數 http://rs-vb.blogspot.tw/2016/10/z2am3p1… Read More
  • To Z2A 程式選訓(1227-4,1227-5)1227-4_撲克21點(參考解) 輸入範例: 【in1.txt】 3 0,2,6 13,10,11 27,36,23 【in2.txt】 3 26,42,8 11,25,30 39,21,22 輸出範例: 【out.txt】 21 21 Bom … Read More
  • To Z2A 程式選訓(2018-103,110) 20180103-1連寫數整除 給一個 正整數 p , 然後找一個最小的正整數n,數123…n串成的數字x使得 p 整除 x In1.txt 3 2 6 8 In2.txt 3 7 15 17 Out.txt 2 2 6 11 5 21… Read More
  • Z2AY7M3 練習-7 (17題題單及參考-4) 4/10(一)測驗題單 (題目名加上連結的表示範例完成) 假設由文字方塊輸入,呼叫 Function MyPxx( S As String ) As String後傳回要輸出的字串 以下只有M5P11附主程式部份,其餘類似 105模擬 M5P11 數學問題:質數 … Read More

0 意見:

張貼留言