y1___1y 2021-08-25 16:39 采纳率: 66.7%
浏览 169
已结题

51nod题目 n位不重复的数字

今天的数学课让你感到很无聊。于是你打算在纸上写下所有n位不含重复数字的数,来打发时间。

例如:你打算写6位数,那么你会写下127643;而123347含重复的3,你不会写下它。

你决定由小到大写出每个数,并且你不会考虑含前导0的n位数。

输入
输入一个数n,表示你打算写n位数。
输出
每行输出一个数,表示你所写下的n位数。
数据范围
对于100%的数据,1≤n≤8;
输入样例
1
输出样例
1
2
3
4
5
6
7
8
9

  • 写回答

5条回答 默认 最新

  • aabyte 2021-08-25 19:06
    关注

    这个应该能过了!

    #include <iostream>
    #include <cstdio>
    using namespace std;
    int main()
    {
        int n=0,a=0,b=0;
        scanf("%d",&n);
        if(n==1)
            a=1,b=9;
        if(n==2)
            a=10,b=98;
        if(n==3)
            a=102,b=987;
        if(n==4)
            a=1023,b=9876;
        if(n==5)
            a=10234,b=98765;
        if(n==6)
            a=102345,b=987654;
        if(n==7)
            a=1023456,b=9876543;
        if(n==8)
            a=10234567,b=98765432;
        for(int i=a; i<=b; i++) //遍历所有n位数
        {
            int arr[10]= {0};
            int index=0,num=i,flag=1;
            while (num>0)
            {
                index = num % 10;
                if (arr[index])
                {
                    flag=0;
                    break;
                }
                arr[index] = 1;
                num /= 10;
            }
            if(flag)
                printf("%d\n",i);
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月26日
  • 已采纳回答 8月26日
  • 创建了问题 8月25日

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法