diff --git a/Advanced Recurssion/return_keypad_code.cpp b/Advanced Recurssion/return_keypad_code.cpp index 79c1264..abef4a5 100644 --- a/Advanced Recurssion/return_keypad_code.cpp +++ b/Advanced Recurssion/return_keypad_code.cpp @@ -31,39 +31,54 @@ cf /* Sat-Chitta-Ananda */ -#include -using namespace std; -#define int long long -#define double long double +#include +#include -const vector keypad = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; +using namespace std; -vector recursion(int n) { - if(n <= 1) { - return {""}; - } - - vector ans = recursion(n / 10); - vector output; - int index = n % 10; - for(char c : keypad[index]) { - for(string s : ans) { - output.push_back(s + c); - } - } - return output; +int keypad(int num, string output[]) +{ + string key[10] = { "", "", "abc", "def", "ghi", "jkl", "mno" ,"pqrs", "tuv", "wxyz"}; + if(num==0) + { + output[0]=""; + return 1; + } + int digit = num % 10; + string smalloutput[1000]; + int count = keypad(num/10, smalloutput); + string str=key[digit]; + int k=0; + for(int i=0; i> n; - vector ans = recursion(n); +int main(){ + int t; + cin >> t; + while(t--) + { + int num; + cin >> num; - for(string s : ans) { - cout << s << '\n'; - } - return 0; -} \ No newline at end of file + string output[10000]; + int count = keypad(num, output); + for(int i = 0; i < count && i < 10000; i++){ + cout << output[i] << endl; + } + } + return 0; +}