CCF 2019.12 認證 -- 報數

CCF認證題目鏈接


在這裏插入圖片描述
在這裏插入圖片描述

#include<iostream>
using namespace std;

//判斷函數
bool Is_judge(int num,int &temp_cnt,const int &total_cnt,int &flag) {
	if (num % 7 == 0)
		return 0;
	else {
		while (num != 0) {
			if (num % 10 == 7)
				return 0;
			else
				num /= 10;
		}
	}
	++temp_cnt;  //合法數,增一
	if (temp_cnt == total_cnt)
		flag = 1;
	return 1;
}

int main()
{
	int num[4] = { 0 };//0:甲  1:乙  2:丙  3:丁
	int total_cnt,temp_cnt = 0,flag = 0;
	cin >> total_cnt;
	for (int i = 0;; i += 4) {
		if (!Is_judge(i + 1, temp_cnt, total_cnt, flag))
			++num[i % 4];
		if (flag == 1)
			break;
		if (!Is_judge(i + 2, temp_cnt, total_cnt, flag))
			++num[(i + 1) % 4];
		if (flag == 1)
			break;
		if (!Is_judge(i + 3, temp_cnt, total_cnt, flag))
			++num[(i + 2) % 4];
		if (flag == 1)
			break;
		if (!Is_judge(i + 4, temp_cnt, total_cnt, flag))
			++num[(i + 3) % 4];
		if (flag == 1)
			break;
	}
	for (int i = 0; i <= 3; ++i)
		cout << num[i] << endl;
	return 0;
}

測試結果
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章