diff --git a/languages/c++/babylonian.cc b/languages/c++/babylonian.cc new file mode 100644 index 0000000..1de722f --- /dev/null +++ b/languages/c++/babylonian.cc @@ -0,0 +1,21 @@ +#include +using namespace std; + +int sqrt(int number) { + int initialGuess = 2; + + while (abs(initialGuess - number / initialGuess) > 1) { + initialGuess = (initialGuess + number / initialGuess) / 2; + } + + return initialGuess; +} + +int main() { + cout << "Type a number to predict the square root of:"; + + int number; + cin >> number; + + cout << sqrt(number); +} diff --git a/languages/c++/pascal.cc b/languages/c++/pascal.cc new file mode 100644 index 0000000..3338675 --- /dev/null +++ b/languages/c++/pascal.cc @@ -0,0 +1,65 @@ +#include +#include +using namespace std; + +// Calculate Pascal's triangle +vector> pascal(int rowCount) { + vector> rows{{1}}; + + for (int i = 0; i < rowCount; i++) { + vector previousRow = rows[rows.size() - 1]; + vector newRow{1}; + + for (int j = 0; j < previousRow.size() - 1; j++) { + newRow.push_back(previousRow[j] + previousRow[j + 1]); + } + + newRow.push_back(1); + rows.push_back(newRow); + } + + return rows; +} + +int vectorStringLength(vector vector) { + int value = vector.size(); + + for (int i = 0; i < vector.size(); i++) { + value += to_string(vector[i]).size(); + } + + return value; +} + +int main() { + vector> pascalsTriangle = pascal(10); + int bottomRowSize = vectorStringLength(pascalsTriangle[pascalsTriangle.size() - 1]); + + // Output the triangle + for (int i = 0; i < pascalsTriangle.size(); i++) { + vector currentRow = pascalsTriangle[i]; + int rowSize = vectorStringLength(currentRow); + int sizeDifference = bottomRowSize - rowSize; + string spacing = ""; + + for (int j = 0; j < sizeDifference / 2; j++) { + spacing += " "; + } + + for (int j = 0; j < currentRow.size(); j++) { + if (j == 0) { + cout << spacing; + } + + cout << to_string(currentRow[j]) + " "; + + if (j == currentRow.size() - 1) { + cout << spacing; + } + } + + if (i != pascalsTriangle.size() - 1) { + cout << endl; + } + } +}