【华为机试】——每日刷题经验分享😎
- 前言🙌
- 题目:HJ9 提取不重复的整数
- 总结撒花💞
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!
😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
前言🙌
哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【华为机试】——每日刷题经验分享。
题目:HJ9 提取不重复的整数
描述
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是 0 。
题目链接:
链接: HJ9 提取不重复的整数
解题思路分享:
- 首先先审题,这里要求输入一个int类型的数字,然后输出一个不包含重复数字的结果。这里其实也可以投机,输入一个数字字符串,然后进行一个遍历求解。这里就不演示了,这里按照题目要求来求解这道题目
- 这里首先建立一个10个整形大小的数组,作用:用来标记整数各个数字出现。首先全部初始化为0,当出现时,就将其改为1。0表示这个数字还没出现,1表示这个数字出现了,再次出现时就说明重复,就不用将其打印。这里使用一个if 就行了。
- 利用循环,利用取模运算得到整数的每一位,然后经过if得到每一个符合条件的数字进行一个输出,这里别忘了每一次要除以10,因为得到一位后,这一位就没有存在的意义了。不断的模10除10,就可以得到每一位啦~
#include<stdio.h>
int main()
{
int num = 0;
int arr[10] = { 0 };
int a = 0;
scanf("%d", &num);
while (num > 0)
{
a = num % 10;
if (!arr[a])
{
printf("%d", a);
arr[a] = 1;
}
num /= 10;
}
return 0;
}
运行结果:
总结撒花💞
本篇文章旨在【华为机试】——每日刷题经验分享。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘