本文主要是介绍【PAT520 钻石争霸赛】7-5 猜近似数字 (15分),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
甲想好了一个 n 位数字让乙来猜,只要猜的数字位数正确,至多有 1 位与谜底不同,且不同的数字相差不超过 1,就算猜对了。例如谜底是 67,若乙猜 66、68、77、57,就都算对了;猜 167 就不能算对。
输入格式:
输入首先在第一行给出一个不超过 1000 位数的、最高位不是 0 的正整数,是甲给出的谜底。随后若干行,每行给出一个乙猜的数字,都是最高位不是 0 的正整数。直到出现 -1 表示输入结束,这个数字不要做任何处理。题目保证乙至少猜了一次。
输出格式:
对每一个乙猜的数字,如果猜对了就输出 Yes
,否则输出 No
。
输入样例:
12345678909876
2345678909876
12345678900876
12345678809876
12345678909888
1234567890987
-1
输出样例:
No
No
Yes
No
No
C++
#include<iostream>
using namespace std;
int main(){string a,b;cin>>a>>b;while(b!="-1"){if(a.length()!=b.length()){cout<<"No"<<endl;}else{int flag=1;for(int i=0;i<a.length();i++){if(a[i]==b[i]){continue;}if(abs(a[i]-b[i])==1){flag--;}else{flag=-1;}}if(flag>=0){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}}cin>>b;}
}
这篇关于【PAT520 钻石争霸赛】7-5 猜近似数字 (15分)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!