Enter password:
#include < iostream > using namespace std; int factorial(int n){ if(n <= 0) return 1; return factorial(n-1) * n; } int main(){ cout << factorial(3) << endl; }
#include < iostream > #include < string > using namespace std; class Sentence { public: Sentence(string s):s(s) {} void reverse(); string get_text() const; private: string s; }; void Sentence::reverse(){ if(s.length() <= 1){ return; } // fun("asdf") = "f" + fun("asd") Sentence small_s(s.substr(0,s.length()-1)); small_s.reverse(); s = s[s.length()-1] + small_s.get_text(); // 'f' + "dsa" = "fdsa" } string Sentence::get_text() const{ return s; } int main(){ Sentence greeting("Hello world"); greeting.reverse(); cout << greeting.get_text() << endl; // expect "fdsa"; }
#include < iostream > #include < string > using namespace std; bool find(const string& word, const string& target){ if(word.length() < target.length()) return false; if(word.substr(0,target.length()) == target) return true; return find(word.substr(1), target); // substr(starting index, number of letters) // substr(starting index) -> take everything after the starting index // word =asdfasdfasdfasdf // word.substr(1) = sdfasdfasdfasdf } int main(){ bool b = find("asdf", "sd"); // expect "true" cout << b << endl; // 1 }
Enter password:
#include < iostream > #include < vector > using namespace std; int maximum(vector< int > v){ if(v.size() == 1){ return v[0]; } // if( last > rest ) int last = v[v.size()-1]; v.pop_back(); int rest = maximum(v); if(last >= rest){ return last; }else{ return rest; } } int main(){ vector< int > v = {1,5,2,9,100,15,4,3}; cout << maximum(v) << endl; // 15 }
#include < iostream > #include < vector > #include < string > using namespace std; vector< string > generate_substrings(string s){ vector< string > result; if(s == ""){ result.push_back(s); return result; } string first = s.substr(0,1); for(int i = 1; i <= s .size();++i){ result.push_back(s.substr(0,i)); } vector< string > addition = generate_substrings(s.substr(1)); for(int i=0;i< addition .size();++i){ result.push_back(addition[i]); } return result; } int main(){ string s = "rum"; vector< string > gs = generate_substrings(s); }
#include < iostream > #include < vector > #include < string > using namespace std; vector< string > generate_substrings(string s){ vector< string > result; if(s == ""){ result.push_back(s); return result; } string first = s.substr(0,1); vector< string > addition = generate_substrings(s.substr(1)); for(int i=0;i < addition.size();++i){ result.push_back(first+addition[i]); } for(int i=0;i < addition.size();++i){ result.push_back(addition[i]); } return result; } int main(){ string s = "rum"; vector< string > gs = generate_substrings(s); }
#include < iostream > using namespace std; void hanoi(int from, int to, int newto, int n) { if(n<=1) { cout << "Move disk from peg " << from << " to peg " << to << endl; return; } hanoi(from, newto, to, n-1); cout << "Move disk from peg " << from << " to peg " << to << endl; hanoi(newto, to, from, n-1); } void play(int n) { return hanoi(0,2,1,n); } int main() { play(2); }
#include < iostream > void swap(int& a, int& b){ int tmp = a; a = b; b = tmp; } ing min_position(vector< int >& a, int from, int to){ int min_pos = from; for(int i=from+1; i <= to; ++i){ if(a[i] < a[min_pos]){ min_pos = i; } } return min_pos; } void selection_sort(vector< int >& a){ for(int i=0;i < a.size();++i){ int min_pos = min_position(a, i, a.size()-1); if(min_pos != i){ swap(a[min_pos], a[i]); } } } int main(){ vector< int > a = {1, 5, 2, 3}; selection_sort(a); for(int i=0; i < a.size(); ++i){ cout << a[i] << ", "; } }
Enter password:
Enter password:
Enter password: