Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
29
Task/Happy-numbers/Visual-Basic-.NET/happy-numbers-1.vb
Normal file
29
Task/Happy-numbers/Visual-Basic-.NET/happy-numbers-1.vb
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
Module HappyNumbers
|
||||
Sub Main()
|
||||
Dim n As Integer = 1
|
||||
Dim found As Integer = 0
|
||||
|
||||
Do Until found = 8
|
||||
If IsHappy(n) Then
|
||||
found += 1
|
||||
Console.WriteLine("{0}: {1}", found, n)
|
||||
End If
|
||||
n += 1
|
||||
Loop
|
||||
|
||||
Console.ReadLine()
|
||||
End Sub
|
||||
|
||||
Private Function IsHappy(ByVal n As Integer)
|
||||
Dim cache As New List(Of Long)()
|
||||
|
||||
Do Until n = 1
|
||||
cache.Add(n)
|
||||
n = Aggregate c In n.ToString() _
|
||||
Into Total = Sum(Int32.Parse(c) ^ 2)
|
||||
If cache.Contains(n) Then Return False
|
||||
Loop
|
||||
|
||||
Return True
|
||||
End Function
|
||||
End Module
|
||||
40
Task/Happy-numbers/Visual-Basic-.NET/happy-numbers-2.vb
Normal file
40
Task/Happy-numbers/Visual-Basic-.NET/happy-numbers-2.vb
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
Module Module1
|
||||
|
||||
Dim sq As Integer() = {1, 4, 9, 16, 25, 36, 49, 64, 81}
|
||||
|
||||
Function isOne(x As Integer) As Boolean
|
||||
While True
|
||||
If x = 89 Then Return False
|
||||
Dim t As Integer, s As Integer = 0
|
||||
Do
|
||||
t = (x Mod 10) - 1 : If t >= 0 Then s += sq(t)
|
||||
x \= 10
|
||||
Loop While x > 0
|
||||
If s = 1 Then Return True
|
||||
x = s
|
||||
End While
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Sub Main(ByVal args As String())
|
||||
Const Max As Integer = 10_000_000
|
||||
Dim st As DateTime = DateTime.Now
|
||||
Console.Write("---Happy Numbers---" & vbLf & "The first 8:")
|
||||
Dim i As Integer = 1, c As Integer = 0
|
||||
While c < 8
|
||||
If isOne(i) Then Console.Write("{0} {1}", If(c = 0, "", ","), i, c) : c += 1
|
||||
i += 1
|
||||
End While
|
||||
Dim m As Integer = 10
|
||||
While m <= Max
|
||||
Console.Write(vbLf & "The {0:n0}th: ", m)
|
||||
While c < m
|
||||
If isOne(i) Then c += 1
|
||||
i += 1
|
||||
End While
|
||||
Console.Write("{0:n0}", i - 1)
|
||||
m = m * 10
|
||||
End While
|
||||
Console.WriteLine(vbLf & "Computation time {0} seconds.", (DateTime.Now - st).TotalSeconds)
|
||||
End Sub
|
||||
End Module
|
||||
Loading…
Add table
Add a link
Reference in a new issue