From 609e4fc667cc60bdd8ffac2267dac99c88ae0b94 Mon Sep 17 00:00:00 2001 From: Renata Carvalho Date: Thu, 11 Jun 2015 11:05:36 -0400 Subject: [PATCH] rosetta: ethiopian_multiplication Close #1464 Signed-off-by: Renata Carvalho --- examples/rosettacode/ethiopian_multiplication.nit | 33 +++++++++++++++++++++ tests/ethiopian_multiplication.inputs | 1 + tests/sav/ethiopian_multiplication.res | 5 ++++ 3 files changed, 39 insertions(+) create mode 100644 examples/rosettacode/ethiopian_multiplication.nit create mode 100644 tests/ethiopian_multiplication.inputs create mode 100644 tests/sav/ethiopian_multiplication.res diff --git a/examples/rosettacode/ethiopian_multiplication.nit b/examples/rosettacode/ethiopian_multiplication.nit new file mode 100644 index 0000000..0e7f848 --- /dev/null +++ b/examples/rosettacode/ethiopian_multiplication.nit @@ -0,0 +1,33 @@ +#!/usr/bin/env nit +# +# This file is part of NIT ( http://www.nitlanguage.org ). +# This program is public domain + +# Task: Ethiopian Multiplication +# SEE: +# +# Generic non-robust version. +module ethiopian_multiplication + +fun ethiopian(x, y: Int): Int +do + print "{x}; {0}" + var sum: Int + if x.is_even then + sum = 0 + else + sum = y + end + + while x>1 do + x /= 2 + y *= 2 + print "{x}; {y}" + if not x.is_even then sum += y + end + + return sum +end + +var words = gets.split(" ") +print ethiopian(words[0].to_i, words[1].to_i) diff --git a/tests/ethiopian_multiplication.inputs b/tests/ethiopian_multiplication.inputs new file mode 100644 index 0000000..25bf134 --- /dev/null +++ b/tests/ethiopian_multiplication.inputs @@ -0,0 +1 @@ +8 6 diff --git a/tests/sav/ethiopian_multiplication.res b/tests/sav/ethiopian_multiplication.res new file mode 100644 index 0000000..1f2aa01 --- /dev/null +++ b/tests/sav/ethiopian_multiplication.res @@ -0,0 +1,5 @@ +8; 0 +4; 12 +2; 24 +1; 48 +48 -- 1.7.9.5