Springen naar inhoud


- - - - -
Solved

Opdracht 030



  • Log in a.u.b. om te beantwoorden
Er zijn 2 reacties in dit onderwerp

#1 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3592 berichten
    Laatst bezocht gisteren, 10:26
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 14 oktober 2010 - 11:51

Citeren

Surprisingly there are only three numbers that can be written as the sum of fourth powers of their digits: 1634 = 14 + 64 + 34 + 44
8208 = 84 + 24 + 04 + 84
9474 = 94 + 44 + 74 + 44 As 1 = 14 is not a sum it is not included.
The sum of these numbers is 1634 + 8208 + 9474 = 19316.
Find the sum of all the numbers that can be written as the sum of fifth powers of their digits.


#2 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3592 berichten
    Laatst bezocht gisteren, 10:26
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 14 oktober 2010 - 11:52

Visual Basic Code:

Option Strict Off

Public Class Form1

	Dim break_counter As Array

	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		Dim result As Integer = 0
		For counter As Integer = 2 To 999999					'skip 1 since 1 = 1^5 is not a sum
			break_counter = counter.ToString.ToCharArray()	  'break number in array of char
			If CalcTemp() = counter Then result += counter 'call function
		Next
		MessageBox.Show("the sum of all the numbers that can be written as the sum of fifth powers of their digits >>" & result.ToString)
	End Sub

	Private Function CalcTemp() As Integer
		Dim total_sum As Integer = 0
		For i = 0 To break_counter.Length - 1
			total_sum += Val(break_counter(i)) ^ 5
		Next
		Return total_sum
	End Function
End Class




#3 josk79

josk79

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 614 berichten
    Laatst bezocht 16 aug 2018 17:25

Geplaatst op 15 oktober 2010 - 23:57

Mijn twee centen:

Visual Basic Code:
		Public Function Solve() As String Implements IEulerSolution.Solve
			Const power As Integer = 5

			'bepalen tot waar onze loop moet lopen
			'Ik ben ervan uitgegaan dat we niet meer cijfers hoeven te gebruiken als
			' ( lengte_van_getal[9^power] ) + 1
			Dim upbound As Long = CLng(9 ^ power)
			upbound *= upbound.ToString.Length + 1

			Dim total As Long = 0
			For c As Long = 10 To upbound
				Dim sum As Long = 0
				'berekenen som van de 5e machten van alle cijfers
				For Each cha As Char In c.ToString
					sum += CLng(Long.Parse(cha) ^ power)
					If sum > c Then Exit For
				Next
				'Is de som van de 5e machten gelijk aan het getal zelf?
				If sum = c Then
					Console.WriteLine(c.ToString)
					total += c
				End If
			Next

			Return total.ToString
		End Function


Ik weet niet zeker of mijn berekening klopt om de hoogste boundary voor de zoek-loop te vinden.





Ook met taq Solved voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[Solved] Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)