问题描述: 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
知识点: 数组
题目来源: 内部整理
练习阶段: 初级
运行时间限制: 10Sec
内存限制: 128MByte
输入:
输入一个int型整数
输出:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
如果返的整数以0开头,去掉0;
如 intput:1010 output:1
样例输入: 9876673
样例输出: 37689
#include <iostream>
using namespace std;
int main(void)
{
int a;
int k=1;
char b[100];
char out[100]={ };
char *pout;
cin>>a;
itoa(a,b,10);
int len=strlen(b);
int flag=0;
if(1==len)
{
cout<<b;
return 0;
}
out[0]=b[len-1];
for(int i=len-2;i>=0;i--)
{
for(int j=0;j<strlen(out);j++)
{
if(b[i]==out[j] )
flag=1;
}
if(flag==0)
{
out[k]=b[i];
k++;
}
flag=0;
}
for(int i=0;i<strlen(out);i++)
{
if(out[i]!='0')
{
pout=out+i;
break;
}
}
cout<<pout<<endl;
return 0;
}
//需要注意的问题是,在比较开头有没有0时比较的是字符‘0’if(out[i]!='0'),而不是数字0