Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
54
Task/Bernoulli-numbers/FreeBASIC/bernoulli-numbers.freebasic
Normal file
54
Task/Bernoulli-numbers/FreeBASIC/bernoulli-numbers.freebasic
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
' version 08-10-2016
|
||||
' compile with: fbc -s console
|
||||
' uses gmp
|
||||
|
||||
#Include Once "gmp.bi"
|
||||
|
||||
#Define max 60
|
||||
|
||||
Dim As Long n
|
||||
Dim As ZString Ptr gmp_str :gmp_str = Allocate(1000) ' 1000 char
|
||||
Dim Shared As Mpq_ptr tmp, big_j
|
||||
tmp = Allocate(Len(__mpq_struct)) :Mpq_init(tmp)
|
||||
big_j = Allocate(Len(__mpq_struct)) :Mpq_init(big_j)
|
||||
|
||||
Dim Shared As Mpq_ptr a(max), b(max)
|
||||
For n = 0 To max
|
||||
A(n) = Allocate(Len(__mpq_struct)) :Mpq_init(A(n))
|
||||
B(n) = Allocate(Len(__mpq_struct)) :Mpq_init(B(n))
|
||||
Next
|
||||
|
||||
Function Bernoulli(n As Integer) As Mpq_ptr
|
||||
|
||||
Dim As Long m, j
|
||||
|
||||
For m = 0 To n
|
||||
Mpq_set_ui(A(m), 1, m + 1)
|
||||
For j = m To 1 Step - 1
|
||||
Mpq_sub(tmp, A(j - 1), A(j))
|
||||
Mpq_set_ui(big_j, j, 1) 'big_j = j
|
||||
Mpq_mul(A(j - 1), big_j, tmp)
|
||||
Next
|
||||
Next
|
||||
|
||||
Return A(0)
|
||||
End Function
|
||||
|
||||
' ------=< MAIN >=------
|
||||
|
||||
For n = 0 To max
|
||||
Mpq_set(B(n), Bernoulli(n))
|
||||
Mpq_get_str(gmp_str, 10, B(n))
|
||||
If *gmp_str <> "0" Then
|
||||
If *gmp_str = "1" Then *gmp_str = "1/1"
|
||||
Print Using "B(##) = "; n;
|
||||
Print Space(45 - InStr(*gmp_str, "/")); *gmp_str
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
' empty keyboard buffer
|
||||
While Inkey <> "" :Wend
|
||||
Print :Print "hit any key to end program"
|
||||
Sleep
|
||||
End
|
||||
Loading…
Add table
Add a link
Reference in a new issue