题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例1
输入
9876673
输出
37689
代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int inpNum;
cin >> inpNum;
string str = to_string(inpNum);
int i = str.length() - 1;
int newNum = 0;
string tempStr;
for (; i >= 0; i--)
{
if (tempStr.find(str.at(i)) == string::npos)
{
tempStr += str.at(i);
newNum = 10 * newNum + (str.at(i) - '0');
}
}
cout << newNum << endl;
system("pause");
return 0;
}
代码2:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int inputNum;
cin >> inputNum;
int biaoJi[10]{ 0 };
string str = to_string(inputNum);
int i = str.length() - 1;
int newNum = 0;
for (; i >= 0; i--)
{
int j = str.at(i) - '0';
if (biaoJi[j])
{
continue;
}
else
{
newNum = 10 * newNum + j;
biaoJi[j] = 1;
}
}
cout << newNum << endl;
system("pause");
return 0;
}
代码3:
//提取不重复的整数
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str_in;
while (cin >> str_in)
{
int iTable[10]{ 0 };
int nLength = str_in.length() - 1;
string str_out;
int i;
for (i = nLength; i >= 0; i--)
{
int j = str_in[i] - '0';
if (iTable[j])
continue;
else
{
iTable[j] = 1;
str_out += str_in[i];
}
}
cout << str_out << endl;
}
return 0;
}