From d2a1c7021ad485c1fbfa2d1df486432804872c5b Mon Sep 17 00:00:00 2001 From: BigFun Date: Sat, 1 Nov 2014 13:05:16 +0800 Subject: [PATCH] codekata_2 --- player/BigFun/Game/game.cpp | 53 +++++++++++++++++++++++++++++++++++ player/BigFun/Game/test.cpp | 56 +++++++++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 player/BigFun/Game/game.cpp create mode 100644 player/BigFun/Game/test.cpp diff --git a/player/BigFun/Game/game.cpp b/player/BigFun/Game/game.cpp new file mode 100644 index 0000000..34683da --- /dev/null +++ b/player/BigFun/Game/game.cpp @@ -0,0 +1,53 @@ +#include +#include +#include +using namespace std; + +typedef struct Special_Words +{ + int spcial_num; + string words; +} Context; + +vector Ctx; + +void CtxInit() +{ + Context First = {3, "Cute"}; + Ctx.push_back(First); + + Context Second = {5, "Da"}; + Ctx.push_back(Second); + + Context Third = {7, "Evil"}; + Ctx.push_back(Third); +} + +string Game(int data) +{ + string result; + int temp = data; + + do + { + int first_num = temp % 10; + if (first_num == Ctx.begin()->spcial_num) + { + result = Ctx.begin()->words; + return result; + } + + temp = temp / 10; + } while (temp != 0); + + for (vector ::iterator iter = Ctx.begin(); + iter != Ctx.end(); ++iter) + { + if (0 == data % iter->spcial_num) + { + result += iter->words; + } + } + + return result; +} diff --git a/player/BigFun/Game/test.cpp b/player/BigFun/Game/test.cpp new file mode 100644 index 0000000..b8fe961 --- /dev/null +++ b/player/BigFun/Game/test.cpp @@ -0,0 +1,56 @@ +#include +#include +#include +using namespace std; + +extern void CtxInit(); +extern string Game(const int data); + +void Test_Rule_1() +{ + assert("Cute" == Game(3)); + assert("Cute" == Game(66)); + + assert("Da" == Game(5)); + assert("Da" == Game(200)); + + assert("Evil" == Game(7)); + assert("Evil" == Game(707)); +} + +void Test_Rule_2() +{ + assert("CuteDa" == Game(15)); + assert("CuteDa" == Game(45)); + + assert("DaEvil" == Game(70)); + assert("DaEvil" == Game(140)); + + assert("CuteEvil" == Game(21)); + assert("CuteEvil" == Game(42)); +} + +void Test_Rule_3() +{ + assert("CuteDaEvil" == Game(105)); + assert("CuteDaEvil" == Game(210)); +} + +void Test_Rule_4() +{ + assert("Cute" == Game(35)); + assert("Cute" == Game(53)); + assert("Cute" == Game(375)); +} + +void main() +{ + CtxInit(); + + Test_Rule_1(); + Test_Rule_2(); + Test_Rule_3(); + Test_Rule_4(); + + getchar(); +}