Yes
This commit is contained in:
parent
45200bb640
commit
d6cffc16e4
12 changed files with 954 additions and 0 deletions
67
roman_number.h
Executable file
67
roman_number.h
Executable file
|
|
@ -0,0 +1,67 @@
|
|||
/*----------------------------------------------------------
|
||||
* HTBLA-Leonding
|
||||
* ---------------------------------------------------------
|
||||
* Author: Marc Tismonar
|
||||
* ----------------------------------------------------------
|
||||
* Description:
|
||||
* Encapsulates roman numbers and provides basic mathematical operations.
|
||||
* ----------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef ___ROMAN_NUMBER
|
||||
#define ___ROMAN_NUMBER
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
typedef struct RomanNumberData* RomanNumber;
|
||||
|
||||
/**
|
||||
* Creates a roman number from the given string.
|
||||
* If the given string is not valid or not a valid
|
||||
* number, an invalid RomanNumber is provided.
|
||||
*
|
||||
* @param value The roman number string.
|
||||
* @return RomanNumber
|
||||
*/
|
||||
RomanNumber rn_create(char* value);
|
||||
|
||||
/**
|
||||
* Determines whether or not the RomanNumber is valid.
|
||||
*
|
||||
* @param number The number to test.
|
||||
* @return true if the number is valid, false otherwise.
|
||||
*/
|
||||
bool rn_is_valid(RomanNumber number);
|
||||
|
||||
/**
|
||||
* Provides the value of the RomanNumber or a value less
|
||||
* than zero, if the number is not valid.
|
||||
*
|
||||
* @param number The number to convert.
|
||||
* @return The integral value of the roman number or a value
|
||||
* less than 0;
|
||||
*/
|
||||
int rn_get_value(RomanNumber number);
|
||||
|
||||
/**
|
||||
* Calculates the greatest common divisor of two roman numbers.
|
||||
*
|
||||
* @param x The first number.
|
||||
* @param y The second number.
|
||||
* @return The result or an invalid roman number, if at least one
|
||||
* of the given values is invalid.
|
||||
*/
|
||||
RomanNumber rn_gcd(RomanNumber x, RomanNumber y);
|
||||
|
||||
/**
|
||||
* Calculates the greatest common divisor of two integers.
|
||||
*
|
||||
* @param x The first operand.
|
||||
* @param y The second operand
|
||||
* @return The result.
|
||||
*/
|
||||
int int_gcd(int x, int y);
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue