From fb0013bb7d45905c53eec10868a2fa2eb19eb8e6 Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Fri, 16 Aug 2024 16:08:58 -0700 Subject: [PATCH] fast-fib --- examples/src/bin/fast-fib.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 examples/src/bin/fast-fib.rs diff --git a/examples/src/bin/fast-fib.rs b/examples/src/bin/fast-fib.rs new file mode 100644 index 00000000..1e2b2d18 --- /dev/null +++ b/examples/src/bin/fast-fib.rs @@ -0,0 +1,23 @@ +#![no_std] +#![no_main] + +use nexus_rt::{read_from_private_input, write_output}; + +fn fib(n: u32, mut t1: i32, mut t2: i32) -> i32 { + let mut t3 = 0; + for _int in 0..n { + t3 = t1 + t2; + t1 = t2; + t2 = t3; + } + return t3; +} + +#[nexus_rt::main] +fn main() { + let n = read_from_private_input().unwrap_or(10) as u32; + let t1 = read_from_private_input().unwrap_or(0) as i32; + let t2 = read_from_private_input().unwrap_or(1) as i32; + let result = fib(n, t1, t2); + write_output::(&result); +}