HJ9 提取不重复的整数

这篇博客介绍了如何使用C++和Python编程语言,从右向左读取整数并移除重复的数字。通过维护一个计数数组来跟踪每个数字出现的次数,当遇到未出现过的数字时将其添加到结果整数中。代码示例展示了如何实现这一功能,确保输出的整数不包含重复的数字。
摘要由CSDN通过智能技术生成

HJ9 提取不重复的整数(C++、Python)

描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是0。
输入描述:
输入一个int型整数

输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数

示例1
输入:
9876673

输出:
37689

解题思路

1 用数组统计整数的出现次数
统计整数的出现次数可以采用一个初值为0的全局数组变量,数值对应index,count[index]代表出现的次数。

2 从右向左获取数字
通过 num_in % 10 获得个位数字,然后判断出现过没?

如果没出现过,则count[num_in % 10] ++;//出现一次加1,
num_out = num_out * 10 + num_in % 10;//低位数字变为高位

如果出现过,则整数num_in /= 10;//右移

# include <iostream>
using namespace std;
int main(){
    char count[10] = {0}; //count 数组用于统计个数
    int num_in,num_out = 0;
    cin >> num_in;
    while (num_in){
        if(count[num_in % 10] == 0){ //==0说明没有出现过该数字
            count[num_in % 10] ++; //出现一次加1
            num_out = num_out * 10 + num_in % 10; // 低位数字变为高位
        }
        num_in /= 10;
    }
    cout << num_out << endl;
    return 0;
}
num_out = 0
count = {0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0} #count用于统计个数
num_in = int(input())
while(num_in):
    a = num_in % 10
    if(count[a] == 0):
        count[a] = count[a] + 1
        num_out = num_out * 10 + num_in % 10
    num_in //= 10
print(num_out)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值