首页 > 电脑

n位不重复的数字

更新时间2021-08-28 01:31:51

今天的数学课让你感到很无聊。于是你打算在纸上写下所有n位不含重复数字的数,来打发时间。
例如:你打算写6位数,那么你会写下127643;而123347含重复的3,你不会写下它。
你决定由小到大写出每个数,并且你不会考虑含前导0的n位数。
输入
输入一个数n,表示你打算写n位数。
输出
每行输出一个数,表示你所写下的n位数。
数据范围
对于100%的数据,1≤n≤8;
输入样例
1
输出样例








9

51nod的题,最后一个点可能会超时,采纳一下谢谢

#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 ",i);

}

return 0;

}

上一篇:excel中如何实现根据数字对应出现类别

下一篇:vba获取上一个选择的单元格地址