一,题目要求
1,题目描述:输入一个int型整数,按照从右往左的阅读顺序,返回一个不含重复数字的新的整数
2,输入描述:输入一个int型整数
3,输出描述:按照从右到左的阅读顺序,返回一个不含重复数字的新的整数
4,输入例子:8976673
5,输出例子:37689
二,思路分析
首先可以认识到这可以利用数组来进行求解,第一反应地可以将int型整数的每一位都赋值给数组,这样数组中存放的就是对应的每一位的数字,这个时候要做的工作就是怎样去掉那些重复元素的数组元素,这个时候可以对数组进行遍历比较,如果相等则抛弃,同时将数组的长度减1,保持数组的长度,以便于输出的时候使用。
代码如下:
#include <stdio.h>
int main()
{
int a,n=0,b[100],count=0;
scanf("%d", &a);
while(a>0)
{
b[n] = a%10;
a = a/10;
n++;
count++;
}
//remove_repeat(b,count);
int i, j, k;
for(i = 0; i < count; i ++)
{
for(j = i+1; j <count; j ++)//对后面每个元素比较,去重。
{
if(b[j] == b[i])//发现重复元素。
{
for(k = j+1; k<count; k ++)//依次前移一位。
b[k-1] = b[k];
count--;//总长度减一。
}
}
}
for(n=0;n<count;n++)
{
printf("%d", b[n]);
}
getchar();getchar();
return 0;
}
结果展示为: