Time Limit:C/C++ 1000MS,Other 2000MS
Memory Limit:C/C++ 256MB,Other 512MB
Level:very easy(L1)
Score:99 OI Rank Score:10(0.1*Score+2*Level)
Description
有一个数学谜题是这样的:已知 1234=1,5678=3,6089=5,请问2571= ?解决这个问题的诀窍在于——把每个数字看成一个图形,其中封闭洞穴的数量就是答案。给定一个四位数请你输出它的洞数量。
Input
单个整数:表示输入的一个正整数 n。
Output
Sample Input 1
1234
Sample Output 1
1
Sample Input 2
5678
Sample Output 2
3
Sample Input 3
1023
Sample Output 3
1
Hint
【数据范围】 1<=n<=109
【样例说明】
样例1:4有一个洞
样例2:6有一个洞,8有两个洞
样例3:0有一个洞
AC:
正常人:
#include<iostream>
using namespace std;
int main()
{
int n,sum=0;
cin>>n;
while(n>0){
switch(n%10){
case 0:case 4:case 6:case 9:sum++;break;
case 8:sum+=2;break;
}n/=10;
}cout<<sum;
}
本喵觉得用while太麻烦了,于是:
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char n[100];
int sum=0;
cin>>n;
int t=strlen(n);
for(int i=0;i<t;i++){
if(n[i]=='0'||n[i]=='4'||n[i]=='6'||n[i]=='9')sum++;
if(n[i]=='8')sum+=2;
}cout<<sum;
}
好像更麻烦了...