C语言之数字的孔数

欢迎进入我的C语言世界

题目

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

答案

下面展示 实现代码

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
int quan[11] = {
    
    1, 0, 0, 0, 1, 0, 1, 0, 2, 1};
int main()
{
    
    
	int T;
	int i, j, k;
	while(scanf("%d",&T) != EOF)
	{
    
    				
		for(i = 0; i < T; i ++)
		{
    
    
			int sum = 0;
			int num;
			int Num[5];//用于记录数字中的每个数 
			cin >> num;
			for(j = 0; num > 9; j++)
			{
    
    
				Num[j] = num % 10;
				num = num / 10; 
			}
			Num[j] = num;
			for(k = 0; k <= j; k++)
			{
    
    
				sum += quan[Num[k]];//假设Num[k]=9,9的孔数就在quan[9]里
			}
			cout << sum << endl;
		}
	} 
	return 0;
} 

本题感悟

本块内容可能来自课本或其他网站,若涉及侵权问题,请联系我进行删除,谢谢大家啦~

这题对于对应数字的圈数不一定要if哦,嘻嘻~
以上。

猜你喜欢

转载自blog.csdn.net/hongguoya/article/details/105670188
今日推荐