一道编程面试题

一共N个人在举行会议, 有一些人说谎,有一些人说真话, 其中第i个人说: “我们中总共有j(j<=n)个人说谎”

现在 请你计算在这n个人最少有多少个人说谎 n <= 10,如果无 解 输出 -1


样例
第一行有一个数n
第二行n个数
j1 j2 .... jn


输入
5
1 1 1 1 0
输出
1


输入
5
1 1 1 1 1
输出
5

num[i]代表这n个人中有num[i]个人说 我们中总共有i个人说谎
找到最小满足下面等式的值 即可
0: num[0]+0==n?
1: num[1]+1==n?
2: num[2]+2==n?
3: num[3]+3==n?
4: num[4]+4==n?
...
...
...
n: num[n]+n==n?

假设有i个人说谎,那么必有:没有说谎人数+说谎人数==总人数

原文地址:https://www.cnblogs.com/mgz-/p/7081689.html