mirror of
https://github.com/vlang/v.git
synced 2025-09-13 06:22:26 +03:00
examples: add euler.v
This commit is contained in:
parent
4e4d4706e8
commit
8bb7f3dd75
1 changed files with 18 additions and 0 deletions
18
examples/euler.v
Normal file
18
examples/euler.v
Normal file
|
@ -0,0 +1,18 @@
|
|||
// This example shows 2 solutions for https://projecteuler.net/problem=1 :
|
||||
fn gauss_sum(n int) fn (int) int {
|
||||
return fn [n] (m int) int {
|
||||
return m * ((n - 1) / m) * ((n - 1) / m + 1) / 2
|
||||
}
|
||||
}
|
||||
|
||||
gs := gauss_sum(1000)
|
||||
println('O(1) arithmetic progression sum: ${gs(3) + gs(5) - gs(15)}')
|
||||
|
||||
// A brute force solution, by checking every n in the range:
|
||||
mut sum := 0
|
||||
for n in 1 .. 1000 {
|
||||
if n % 3 == 0 || n % 5 == 0 {
|
||||
sum += n
|
||||
}
|
||||
}
|
||||
println('O(n) brute force calculated sum: ${sum}')
|
Loading…
Add table
Add a link
Reference in a new issue