程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言編程 無重復數字

C語言編程 無重復數字

編輯:C語言問答

C語言編程 無重復數字

已知正整數a、b、n滿足a<=b。求出區間【a,b】內,所有滿足以下條件的整數:①該整數由1~n這n個數字中的數字組成。②整數中各個位上的數字互不相同。
輸入3個正整數a,b,n,其中a,b代表所求區間,滿足1<=a<=b<=2000,且1<=n<=9。輸出滿足條件的整數,每5個數為一行,整數之間用tab分隔,最後一個數後為換行符。當沒有符合條件的整數時,輸出“There is no proper number in the interval.”。

程序運行效果:
sample 1:
Please input there integers:200 500 4
The result is:
213 214 231 234 241
243 312 314 321 324
341 342 412 413 421
423 431 432

sample 1:
Please input there integers:1000 2000 3
There is no proper number in the interval.

最佳回答:

#include <stdio.h>

int unique(int num, int n)
{
int a[10] = {0};
while (num)
{
int bit = num % 10;
num /= 10;
if (bit == 0 || bit > n)
return 0;
else
{
if(a[bit])
return 0;
else
a[bit] = 1;
}
}
return 1;
}

int main()
{
int min, max, n, i;
int count = 0;
scanf("%d %d %d", &min, &max, &n);
for (i = min; i <= max; i++)
{
if (unique(i, n))
{
count++;
printf("%d  ", i);
if (count % 5 == 0)
printf("\n");
}
}
printf("\n");
return 0;
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved