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;
}
測試結果