FOJ 2123 数字的孔数

一,问题描述

二,问题分析

1.提议描述的十分清楚,统计给定整数的孔数和

2.最直观的思路就是对整数的每一位分析,如果是0 4 6 9 则孔数加1,如果是 8 则孔数加2

3.首先将整数的每一位存储在数组中,再对数组遍历,逐个元素分析即可

三,代码解答

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

vector<int> fun(int number) {			//获得每一个数字的每一位
	vector<int> res;
	int k;
	while (number) {
		k = number % 10;
		res.push_back(k);
		number = number / 10;
	}
	return res;
}
int circlenumber(int number) {		//计算数字含有的圆圈数
	int res = 0;
	vector<int> arr;
	arr = fun(number);
	for (int i = 0; i < arr.size(); i++) {
		if (arr[i] == 0 || arr[i] == 4 || arr[i] == 6 || arr[i] == 9) {
			res += 1;
		}
		else if (arr[i] == 8)
		{
			res += 2;
		}
		else {
			continue;
		}
	}
	return res;
}


int main() {
	int num;				//数据组数
	cin >> num;
	vector<int> vec(num);
	for (int i = 0; i < num; i++) {
		cin >> vec[i];
		int res = circlenumber(vec[i]);
		cout << res << endl;
	}
}
发布了54 篇原创文章 · 获赞 14 · 访问量 3580

猜你喜欢

转载自blog.csdn.net/q2511130633/article/details/105224783