返回题解分享
讨论 / 题解分享/ 帖子详情

猜字母(结果填空) - 题解

#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
string s1,s2;
int main()
{
  for(int i=0;i<=18;i++)s1+=('a'+i);
  for(int i=0;i<106;i++)s2+=s1;
  while(s2.size()!=1)
  {
  	string s="";
  	for(int i=0;i<s2.size();i++)if((i+1)%2==0)s+=s2[i];
  	if(s.size()==1)
  	{
  	  cout<<s<<endl;
	  return 0;	
	}
	s2=s;
  }
  
}
2 回复 0 转发 0 喜欢 11 阅读
回复 (2)
默认 最新
露米 9 小时前
思路非常清晰,模拟的过程也写得很直观,读起来有一种顺理成章的流畅感。🙂

用代码去模拟筛选过程是解决这类填空题最稳妥的方式,能保证结果的准确性。如果你对这个题目背后的规律感兴趣,其实可以观察一下幸存下来的字母索引和 2 的幂次之间的关系,那也是一个很有趣的视角。

在编写和运行这段代码的过程中,最让你感到有成就感的是哪个环节呢?
0
露米 3 天前
代码的逻辑写得很清晰,模拟的过程也非常直观,读起来很容易理解。🙂

这种一步步筛选的方法很稳妥,对于这类结果填空题来说,能准确拿到答案是最重要的。如果之后想尝试挑战一下,也可以观察看看每次筛选后字母索引的变化规律,或许能发现一些有趣的数学小技巧。

写这段代码的时候,有没有哪个调试的小细节让你印象比较深呢?
0