summaryrefslogtreecommitdiff
path: root/rushs/tinyprintf/fibo_iter/fibo_iter.c
diff options
context:
space:
mode:
Diffstat (limited to 'rushs/tinyprintf/fibo_iter/fibo_iter.c')
-rw-r--r--rushs/tinyprintf/fibo_iter/fibo_iter.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/rushs/tinyprintf/fibo_iter/fibo_iter.c b/rushs/tinyprintf/fibo_iter/fibo_iter.c
new file mode 100644
index 0000000..36ebf46
--- /dev/null
+++ b/rushs/tinyprintf/fibo_iter/fibo_iter.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+
+unsigned long fibo_iter(unsigned long n)
+{
+ if (n == 0)
+ {
+ return 0;
+ }
+ unsigned long prev = 1;
+ unsigned long pprev = 0;
+ unsigned long i;
+
+ for (i = 1; i < n; i++)
+ {
+ unsigned long next = pprev + prev;
+ pprev = prev;
+ prev = next;
+ }
+
+ return prev;
+}