厄运金币
题目描述
在中世纪的欧洲,金币一种流通范围较广的等价交换物,由于它十分贵重,因此每一枚金币都有一个独一无二的编号。
中世纪的人是迷信的,他们认为撒旦污染了 0 ∼ 9 0 \sim 9 0∼9的其中 n n n个数字 a 1 , a 2 , ⋯ , a n a_1,a_2,\cdots,a_n a1,a2,⋯,an。如果一枚金币的编号中包含了被撒旦污染的数字,那么这枚金币就被称为厄运金币,它是不详的征兆。
你是一名中世纪的贵族,有一天你获得了一枚金币,请根据金币上的编号判断它是否为厄运金币。
输入格式
输入共 3 3 3行:
第 1 1 1行,一个数字 x x x,表示金币上的数字。
第 2 2 2行,一个数字 n n n,表示被撒旦污染的数字个数。
第 3 3 3行, n n n个用空格隔开的整数 a 1 , a 2 , ⋯ , a n a_1,a_2,\cdots,a_n a1,a2,⋯,an,表示被撒旦污染的数字。
输出格式
如果是厄运金币,则输出"Yes";否则输出"No"。
样例 #1
样例输入 #1
68888
2
6 8
样例输出 #1
Yes
提示
对于 100 % 100\% 100%的数据, 1 ≤ x ≤ 1 0 18 , 1 ≤ n ≤ 9 , 0 ≤ a i ≤ 9 1 \le x \leq 10^{18}, 1 \le n \le 9, 0 \le a_i \le 9 1≤x≤1018,1≤n≤9,0≤ai≤9 。
答案(不一定最简)
#include<bits/stdc++.h>
using namespace std;
int main(){
long long x,n,p,a[8]={0};
bool flag=0;
cin >> x >> n;
for(int i=0;i<=n-1;i++){
cin >> a[i];
}
while (x != 0)
{
p = x % 10;
for(int k=0;k<=n-1;k++){
if (p == a[k])
{
flag = 1;
break;
}
}
x = x / 10;
}
if (flag == 1) cout << "Yes";
else cout << "No";
return 0;
}