c语言这个程序是怎么实现的,麻烦用文字解释一下。谢谢

 我来答
outspaceman19
2017-05-13 · TA获得超过1080个赞
知道小有建树答主
回答量:749
采纳率:100%
帮助的人:402万
展开全部

大体思路就是占位,因为数字都是从0-9,所以给定一个数组bool digit_seen[10] = {false};

初始值为0-9都没有占位

while(n>0)
{
    digit = n % 10;//获取个位数
    if(digit_seen[digit])//如果个位数已经被占位,则退出循环
        break;
    digit_seen[digit] = true;
    n = n / 10;//去掉个位数
}

while循环退出只有两种可能,一种是通过break跳出,一种是n<=0退出,

如果通过break跳出,n是大于0的,此时是因为占位导致的退出,说明这个数中有重复的数字

如果n<=0退出,则说明这个数中的数字彼此各不相同

追问
怎么判断它占没占位呢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式