C语言问题--求解电话号码

C语言问题--求解电话号码,第1张

最理想的情况是,每个8位号码都包含7个连接,并且符合条件2。那么只需要15个号码,就能满足100个连接的需要。所以这个号码组的个数不少于15个。只渗如好要号码是15个就一定是最优解。 为了清楚我给你做了一个图: http://hiphotos.baidu.com/srhouyu/pic/item/85677f09fee0dfaf2fddd43b.jpg

下面的10个号码规橡首律是很明显的。 01020304 12131415 23242526 34353637 45464748 56575859 67686960 78797071 89808182 90919293 它们的连接明显是没有重复的。一共提供了70个连接。在图上用两种黄色表示。 下面的两个号码也是没有重复连接的。提供了14个连接。在图象用两种绿色表示。 05162738 49506172 下面只要3个号码表示出剩下的16个连接就是胜利。所以随便凑,图上用紫丛铅色表示: 22833940 提供22,28,83,33,39,94,40 88440011 提供88,84,44,00,11 55667799 提供剩下的55,66,77,99 正好是15组,而且符合条件2,说明是最优解。 不过最优解很可能不止这一个。

#include <iostream>

using namespace std

int main()

{

    int n, f[10]={0}, t=0

    cin>>n

    while(n)

    {

        升埋和t=n%10

        if(f[t] == 1) break

        f[t]=1

        n/=10

    }

    if(n) cout<<"have repeate number\n"

  液枝  else cout<<"no repeat number\n"

    return 吵盯0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12563256.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存