Accept: 220 Submit: 253
Time Limit: 1000 mSec Memory Limit : 32768 KB
Problem Description
S得到一个数,他想知道这个数每一位上的数字的孔数之和。1,2,3,5,7这几个数字是没有孔的,0,4,6,9都有一个孔,8有两个孔。
Input
输入数据的第一行为一个数T表示数据组数。接下来T行,每行输入一个正整数n(1<=n<=1000),表示要求数字孔数之和的数。n不会有前导0。
Output
对于每组数据输出一行一个整数,表示该数的每一位上的数字的孔数之和。
Sample Input
2
42
669
Sample Output
1
3
/*
思路:将输入的n,用字符串代替,然后判断字符串的每一位是哪些数字,
按题意加1或加2即可
*/
#include<iostream>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--){
char n[12];
cin>>n;
int lenn=strlen(n),sum=0;
for(int i=0;i<lenn;i++)
{
if(n[i]=='0'||n[i]=='4'||n[i]=='6'||n[i]=='9')
sum++;
if(n[i]=='8')
sum+=2;
}
cout<<sum<<endl;
}
return 0;
}