@sensitive-cs
2016-10-19T17:03:40.000000Z
字数 389
阅读 781
如果一个数字的排列有n个,每个数字只出现过一次,那么这就叫一个permutation,输出0。如果不满足permutation,那么就找出得到一个permutation需要修改的最少次数。
用一个二重循环,统计每个数字出现的次数。则未出现数字的个数就是需要修改的次数。
#include <stdio.h>
int a[5009];
int b[5009];
int main()
{
int n,i,j,sum = 0;
scanf("%d",&n);
for (i = 1;i <= n;i++)
scanf("%d",&a[i]);
for (i = 1;i <= n;i++)
{
for (j = 1;j <= n;j++)
{
if (a[j] == i)
b[i]++;
}
}
for (i = 1;i <= n;i++)
{
if (b[i] == 0)
sum++;
}
printf("%d\n",sum);
return 0;
}