如何生成小于n且没有重复的k个整数呢(k<n)?
个人觉得生成k个小于n的整数比较简单,但是这里要求不重复。
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<algorithm>
void swap( int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int n;
int k;
while( scanf("%d%d",&n,&k) != EOF)
{
int a[n];
for( int i = 0; i < n; i++)
a[i] = i;
srand(time(NULL));
for( int i = 0; i < k; i++)
{
int temp = (int)(rand()%(n-i));
//int temp = (int)(rand()%n);
swap(&a[i],&a[i+temp]);
printf("%d\n",a[i]);
}
}
return 0;
}