欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

FOJ 2123 数字的孔数

程序员文章站 2022-06-07 23:42:23
...

一,问题描述

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;
	}
}

 

相关标签: C++ FOJ