A certain bank doesn't believe in interest and gives none the whole year. However, they do two things as a gift at the end of the year. They put money into your account such that it has 5 times as much as it did before. Then, they put 8 dollars in the account after that.
Jack gets one of these accounts at the start of year 1, and puts in 6 dollars. Assuming there are no other withdrawals or deposits into that account, figure out how much money is in that account at the beginning of year x, even if you don't know how much was in the account any of the previous years.
For example, on the beginning of year 1, he would have 6 dollars. On the beginning of year 2, he would have 38 dollars, and on the beginning of year 3 he would have 198 dollars.
What if you put in A dollars to start at the beginning of the first year, the bank put money into your account at the end of the year such that it was B times as much as before, and then put in C more dollars after that; how much money would you have at the beginning of year x, assuming everything else is normal and there are no withdrawals or deposits, even if you don't know how much was in the account any of the previous years?
Formula for sum of money in account at beginning of year x is:
For year 1, sum = A
For x>1, sum = (B^[x-1])*A + C*(B^0 + B^1 + B^2 + ..... + B^[x-2])
The following program verifies the formula.
Dim strgoagain As String
strgoagain = "y"
While strgoagain = "y"
Console.WriteLine("Again ? (y/n)")
strgoagain = LCase(Console.ReadLine()) '
Dim dbla As Double
Dim dbla2 As Double
Dim dblb As Double
Dim dblc As Double
Dim intyears As Integer
Dim dblaccum As Double
Dim dblformula As Double
dbla = 0
While dbla <= 0
Console.WriteLine("What is the beginning sum ?")
dbla = Int(Console.ReadLine())
dbla2 = dbla
dblb = 0
While dblb <= 0
Console.WriteLine("What is the multiplication factor?")
dblb = Int(Console.ReadLine())
dblc = 0
While dblc <= 0
Console.WriteLine("What is the year-end bonus?")
dblc = Int(Console.ReadLine())
intyears = 0
While intyears <= 0
Console.WriteLine("How many years should I verify?")
intyears = Int(Console.ReadLine())
For index1 As Integer = 1 To intyears
computebyaccum(index1, dbla, dblb, dblc, dblaccum)
computebyformula(index1, dbla2, dblb, dblc, dblformula)
Console.WriteLine("After year " & Str(index1) & ":")
Console.WriteLine("By accumulation: " & Str(dblaccum))
Console.WriteLine("By formula: " & Str(dblformula))
Console.WriteLine("Please press ENTER to continue.")
Sub computebyaccum(ByRef intyear, ByRef dbla, ByRef dblb, _
ByRef dblc, ByRef dblaccum)
If intyear = 1 Then
dblaccum = dbla
dblaccum = _
(dblb * dbla) + dblc
dbla = dblaccum
Sub computebyformula(ByRef intyear, ByRef dbla2, ByRef dblb, _
ByRef dblc, ByRef dblformula)
Dim dblwork As Double
If intyear = 1 Then
dblformula = dbla2
dblformula = (dblb ^ (intyear - 1)) * dbla2
dblwork = 0
For index1 As Integer = 0 To intyear - 2
dblwork += dblb ^ index1
dblwork *= dblc
dblformula += dblwork
Edited on August 18, 2004, 11:51 am
Posted by Penny
on 2004-08-18 11:03:43