1585七个小矮人(代码简化)

描述

白雪公主经常为七个小矮人讲故事,为了方便,她为这七个小矮人安排了学号,学号分别是 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 }
 
原文地址:https://www.cnblogs.com/cyk20081108/p/13974463.html