1.题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
2.输入描述:
输入一个int型整数
3.输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
4.示例1
输入
9876673
输出
37689
5.代码
代码1
#include <stdio.h>
#include <string.h>
int main(void)
{
int n,m=0;
scanf("%d",&n);
int a[10]={0};
while(n)
{
if(a[n%10] == 0)
{
a[n%10]++;
m = m*10 + n%10;
}
n /= 10;
}
printf("%d\n",m);
return 0;
}
代码2
分析:
1.先按照字符串输入,转换成int;
2.去重,引入一个数组,默认为0;数字第一次出现时,temp[num[i]]==0,输出后立即执行temp[num[i]]=1,第二次出现时,不能进入条件语句,即可筛选。
3.记住gets函数是用来接收字符串的。
#include <stdio.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
int len;
char str[1000] = {'0'};
int num[1000] = { 0 }, temp[1000] = { 0 };
gets(str);
len = strlen(str);
for (int i =len-1; i >=0; i--)
{
num[i] = (int)(str[i] - 48);
if (temp[num[i]]==0)
{
temp[num[i]] = 1;
printf("%d", num[i]);
}
}
return 0;
}