Skip to content
Snippets Groups Projects
Commit df7d8919 authored by Sandipan Mohanty's avatar Sandipan Mohanty
Browse files

Add first day examples and solutions

parent 3bdc2879
No related branches found
No related tags found
No related merge requests found
#include <iostream>
#include <limits>
int main()
{
size_t umax{ std::numeric_limits<size_t>::max() };
unsigned nfib = 0;
size_t f0{ 0 }, f1{ 1 };
// Insert your code here
std::cout << "The largest number in the Fibonacci sequence under " << umax << " is " << f1 << "\n";
std::cout << "Number of entries in the Fibonacci sequence under " << umax << " is " << nfib << "\n";
}
#include <iostream>
unsigned long euclid_gcd(unsigned long smaller, unsigned long larger)
{
if (smaller > larger)
std::swap(smaller, larger);
// Fill in your code to implement Euclid's algorithm here.
return ? ? ? ;
}
int main(int argc, char* argv[])
{
if (argc != 3) {
std::cout << "Usage:\n"
<< argv[0] << " number1 number2\n";
return 1;
}
unsigned long n1 = std::stoul(argv[1]), n2 = std::stoul(argv[2]);
std::cout << euclid_gcd(n1, n2) << "\n";
}
#include <iostream>
#include <string>
int the_other(int i, int j) { return 3 - i - j; }
void transfer(unsigned long n, int from, int to)
{
int oth = the_other(from, to);
if (n > 1)
transfer(n - 1, from, oth);
std::cout << n << ": " << from << "->" << to << "\n";
if (n > 1)
transfer(n - 1, oth, to);
}
int main()
{
size_t N = 6;
transfer(N, 0, 1);
}
// examples/hello_qa.cc
#include <string>
#include <iostream>
int main()
{
std::string name;
std::cout << "What's your name ? ";
std::cin >> name;
std::cout << "Hello, " << name << "\n";
}
// examples/hello_xyz.cc
#include <iostream>
auto main(int argc, char* argv[]) -> int
{
std::cout << "Hello, ";
if (argc > 1)
std::cout << argv[1] << "!\n";
else
std::cout << "world!\n";
}
#include <iostream>
using namespace std;
namespace UnitedKingdom {
string London = "Big city";
}
namespace UnitedStates {
string London = "Small town in Kentucky";
}
int main()
{
using namespace UnitedKingdom;
cout << London << endl;
cout << UnitedStates::London << endl;
return 0;
}
\ No newline at end of file
#include <iostream>
namespace UnitedKingdom {
std::string London = "Big city";
}
namespace UnitedStates {
namespace KY {
std::string London = "Small town in Kentucky";
}
namespace OH {
std::string London = "Small town in Ohio";
}
}
// The following definition is ok in C++17
//namespace mylibrary::onefeature {
// double solve(int i);
//}
int main()
{
namespace USOH = UnitedStates::OH;
std::cout << USOH::London << std::endl;
return 0;
}
#include <iostream>
#include <string>
#include <fstream>
#include <filesystem>
#include <vector>
#include <sstream>
namespace fs = std::filesystem;
auto as_lines(fs::path file) -> std::vector<std::string>
{
std::ifstream fin{ file };
std::string line;
std::vector<std::string> lines;
while (getline(fin, line)) lines.push_back(line);
return lines;
}
auto main(int argc, char* argv[]) -> int
{
if (argc != 2) {
std::cerr << "Usage:\n"
<< argv[0] << " filename\n";
return 1;
}
auto content = as_lines(argv[1]);
std::sort(content.begin(), content.end(),
[](auto l1, auto l2) {
std::istringstream istr1{ l1 };
std::istringstream istr2{ l2 };
auto x1{0.}, x2{0.};
istr1 >> x1;
istr2 >> x2;
return x1 < x2;
}
);
for (std::string_view line : content) {
std::cout << line << "\n";
}
}
// examples/onespace.cc
#include <iostream>
auto main(int argc, char* argv[]) -> int
{
std::string line;
while (getline(std::cin, line)) {
if (line.empty()) {
continue;
}
bool sp{true};
for (auto c : line) {
if (isspace(c)) {
if (not sp) std::cout << '\t';
sp = true;
} else {
sp = false;
std::cout << c;
}
}
std::cout << "\n";
}
}
#include <iostream>
#include <string>
int main()
{
std::cout << "Use a single backslash character at the end of the line to continue input to the next line, as shown ...\n"
<< "OBJ=a.o \\\n\tb.o\\\n\tc.o\n";
}
#include <iostream>
#include <string>
int main()
{
// clang-format off
std::string s = R"xyz(This is a " raw " C++11 string.)xyz";
std::cout << s << '\n';
s = R"(Inside a raw string \n does not create a new line.)";
std::cout << s << '\n';
s = R"(The regular expression to match a sequence of up to 3 digits is \d{3})";
// clang-format on
std::cout << s << '\n';
}
#include <iostream>
#include <limits>
auto main() -> int
{
size_t umax{ std::numeric_limits<size_t>::max() };
unsigned nfib = 0;
size_t f0{ 0 }, f1{ 1 };
do {
size_t f2 = f0 + f1;
f0 = f1;
f1 = f2;
++nfib;
} while (f1 < umax - f0);
std::cout << "The largest number in the Fibonacci sequence under " << umax << " is " << f1 << "\n";
std::cout << "Number of entries in the Fibonacci sequence under " << umax << " is " << nfib << "\n";
}
#include <iostream>
auto euclid_gcd(unsigned long smaller, unsigned long larger) -> unsigned long
{
if (smaller > larger)
std::swap(smaller, larger);
while (smaller != 0) {
auto rem = larger % smaller;
larger = smaller;
smaller = rem;
}
return larger;
}
auto main(int argc, char* argv[]) -> int
{
if (argc != 3) {
std::cout << "Usage:\n"
<< argv[0] << " number1 number2\n";
return 1;
}
unsigned long n1 = std::stoul(argv[1]), n2 = std::stoul(argv[2]);
std::cout << euclid_gcd(n1, n2) << "\n";
}
#include <iostream>
#include <string>
auto main() -> int
{
using namespace std;
cout << "Use a single backslash character at the end of the line to continue input to the next line, as shown ...\n"
<< R"(OBJ=a.o \
b.o\
c.o
)";
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment