Problem5:計算位元為1 的個數(10%)
計算機概論是一門令人又愛又恨的科目,它的內容可謂包羅萬象。遇到考試時,事前需
要花很多時間準備,才能拿到高分。在學習的內容中,有個章節是數字系統轉換,內容是將
一個十進位的數字,轉換成二進位的數字。現在請你設計一個程式,計算由十進位數字轉換
的二進位數字中,位元等於1 的個數。
輸入說明:
第一行的數字,代表有幾個十進位的數字。第二行開始的每一行,為一個十進位數字,
其範圍為[0, 2147483647]的整數。
輸出說明:
對輸入的十進位數字,以一行分別輸出轉換成二位進數字中,位元等於1 的個數。
輸入範例:
2
1027
65535
輸出範例:
3
16
Private Sub Form_Load()
回覆刪除Me.Hide
Open App.Path & "\in.txt" For Input As #1
Open App.Path & "\out.txt" For Output As #2
Input #1, t
For i = 1 To t
Input #1, n
Call A1(n)
Next
Close
Close
End
End Sub
Sub A1(a)
ans = 0
Do Until a = 0
b = a Mod 2
If b = 1 Then ans = ans + 1
a = a \ 2
Loop
Print #2, ans
End Sub
Private Sub Form_Load()
回覆刪除Me.Hide
Open App.Path & "\in.txt" For Input As #1
Open App.Path & "\out.txt" For Output As #2
Input #1, N
For ii = 1 To N
Input #1, X
ans = 0
Do
If X Mod 2 = 1 Then ans = ans + 1
X = X \ 2
Loop Until X = 0
Print #2, ans
Next ii
Close #2
Close #1
End
End Sub