/******************************************************************************
Author: Maria Logan 10/02/2022
This code includes functions to:
create a random number
double the number
reverse the number
raise the number to the 3rd power
sum the digits
if 2 digits raise the first to the power of the second
if three digits raise to the power of the third
and an exit option
*******************************************************************************/
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;
// function to generate random number
int gen_numb() {
// random number generator code here
int random_number = 10 + rand() % 90; // from 10 to 99
// return random number
return random_number;
}
// function to double number
int dub_numb(int random_number) { // return variable here
// code to double number here
// return doubled number
return random_number + random_number;
}
// function to reverse digits
int reverse_digits(int random_number) {
// code to reverse digits
int reversed_number = 0;
if (random_number < 0) {
random_number = abs(random_number);
}
while (random_number > 0) {
reversed_number = reversed_number * 10 + random_number % 10;
random_number = random_number / 10;
}
// return reversed number
return reversed_number;
}
// function to raise to the power of 3
int raise_3times(int random_number) {
// code to raise number manually no shorcut for cpp
random_number = random_number * random_number * random_number;
// return raised number
return random_number;
// cout << random_number;
}
// function to sum the digits
int sum_them_up(int random_number) {
// code to determine length
int digit, sum = 0;
// code to sum digits
while (random_number > 0) {
digit = random_number % 10;
sum = sum + digit;
random_number = random_number / 10;
}
// return the sum
return sum;
}
// function if number is 2 digits raise first digit to the power of the second
int two_or_no(int random_number) {
// code to check length
//if (random_number.length == 2) {
if (10 <= random_number && random_number <= 99){
int two_step = random_number % 10;
int one_step = random_number / 10;
random_number = pow(one_step, two_step);
return random_number;
} else {
return random_number;
}
//cout << random_number;
}
// function if number is 3 digits and last digit is less than or equal to 4
// then raise the first 2 digits to the power of the last digit
int threes_company(int random_number) {
// check length
if (random_number >= 100 && random_number <= 999) {
// calculate
int last_digit = random_number % 10;
int first_two = random_number / 10;
if(last_digit <= 4){
return pow(first_two, last_digit);
}else{
return random_number;
}
} else {
return random_number;
}
}
int main() {
srand(time(NULL));
int random_number = gen_numb();
int user_input;
do {
cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
cout << "Welcome!! Welcome friend!!" << endl;
cout << "Welcome to my humble little store of" << endl;
cout << "incredibly random things at random prices" << endl;
cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
cout << "Select a series of numbers 1-6 and 9 to quit" << endl;
cout << "and the prices for your random items will be calculated" << endl;
cout << "1. to double" << endl;
cout << "2. to reverse numbers" << endl;
cout << "3. to raise to the power" << endl;
cout << "4. to sum the digits" << endl;
cout << "5. to 2 digit math" << endl;
cout << "6. to 3 digit math" << endl;
cout << "9. exit" << endl;
cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
cout << "CURRENT NUMBER: " << random_number << endl;
cin >> user_input;
switch(user_input){
case 1:{
random_number = dub_numb(random_number);
break;
}
case 2:{
random_number = reverse_digits(random_number);
break;
}
case 3:{
random_number = raise_3times(random_number);
break;
}
case 4:{
random_number = sum_them_up(random_number);
break;
}
case 5:{
random_number = two_or_no(random_number);
break;
}
case 6:{
random_number = threes_company(random_number);
break;
}
case 9:{
cout << "Exiting" << endl;
break;
}
default:{
cout << "Not a valid input" << endl;
break;
}
}
} while(user_input != 9);
}