描述
白雪公主经常为七个小矮人讲故事,为了方便,她为这七个小矮人安排了学号,学号分别是 1 至 7 号。有一次,白雪公主又邀请七个小矮人来听她讲故事,但是只来了六个小矮人,那 么缺席的那个小矮人是谁呢?
输入
一行,6 个学号,空格分开,表示来听故事的六个小矮人的学号。
输出
没来听故事的小矮人的学号。
输入样例 1
3 5 2 1 7 4
输出样例 1
6
输入样例 2
7 3 2 4 1 6
输出样例 2
5
这是其实一道很简单的题目,我第一次做这道题时最开始是用数组来计数。
int a[7]={0};
循环输入,输入6号就a[6-1]++;最后在循环找出为0的元素,即没来的小矮人。
代码如下:
1 #include<iostream>
2 using namespace std;
3 int main()
4 {
5 int a[7]={0},n;
6 for(int i=1;i<=6;i++)
7 {
8 cin>>n;
9 a[n-1]++;
10 }
11 for(int i=0;i<=6;i++)
12 {
13 if(a[i]==0) cout<<i+1;
14 }
15 return 0;
16 }
做完之后才发现,这道题用数组其实是大炮打蚊子了。
可以改进代码,累加输入的6个数,然后用1+2+3+4…+7=28,减去累加的数,就是没有输入的那个数。
代码如下:
1 #include<iostream>
2 using namespace std;
3 int main()
4 {
5 int s=0,a;
6 for(int i=1;i<=6;i++)
7 {
8 cin>>a;
9 s+=a;
10 }
11 cout<<28-s;
12 return 0;
13 }