[풀이 - Bigger is Greater]
더보기
string biggerIsGreater(string w)
{
string result = "";
// make char to int
vector<int> v(w.size(), 0);
for(int i = 0; i < w.size(); ++i)
v[i] = w[i];
// get next permutaion
if(next_permutation(v.begin(), v.end()))
{
for(int i = 0; i < w.size(); ++i)
result += (char)v[i];
}
else
result = "no answer";
//
return result;
}
[풀이 - Modified Kaprekar Numbers]
더보기
bool IsKaprekar(long i)
{
long n = i;
int d = to_string(i).size();
//
i = pow(i, 2);
//
string value = to_string(i);
int size = value.length();
string l = value.substr(0, size - d);
string r = value.substr(size - d, size);
//
if(l == "")
l += "0";
//
long sum = stoi(l) + stoi(r);
//
return (sum == n);
}
// Complete the kaprekarNumbers function below.
void kaprekarNumbers(int p, int q)
{
string numbers = "";
//
for(int i = p; i <= q; ++i)
{
if(IsKaprekar(i) == true)
numbers += (to_string(i) + " ");
}
if(numbers == "")
cout << "INVALID RANGE" << endl;
else
{
numbers.pop_back();
cout << numbers << endl;
}
}