【洛谷】P1765手机问题——C语言-创新互联

一般的手机的键盘是这样的:

创新互联是一家专业提供察哈尔右翼前企业网站建设,专注与成都网站设计、成都网站制作、H5开发、小程序制作等业务。10年已为察哈尔右翼前众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

要按出英文字母就必须要按数字键多下。例如要按出x就得按 9 两下,第一下会出w,而第二下会 把w变成x。0 键按一下会出一个空格。

你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。

我们用“暴力枚举法”来解决。

代码如下:

#includeint main()
{
	char str[201];
	int i,n=0; 
	gets(str);
	for(i=0;str[i]!='\0';i++)  //当检测到字符串结尾的‘\0’时,循环结束
	  {
	  	if(str[i]==97||str[i]==100||str[i]==103||str[i]==106||str[i]==109||str[i]==112||str[i]==116||str[i]==119||str[i]==' ')
	  	  n+=1;
	  	else if(str[i]==98||str[i]==101||str[i]==104||str[i]==107||str[i]==110||str[i]==113||str[i]==117||str[i]==120)
	  	  n+=2;
	  	else if(str[i]==99||str[i]==102||str[i]==105||str[i]==108||str[i]==111||str[i]==114||str[i]==118||str[i]==121)
	  	  n+=3;
	  	else if(str[i]==115||str[i]==122)
	  	  n+=4;
	  }
	printf("%d",n);
return 0;
}

通过小写字母和空格对应的数字来进行枚举,分别找到在手机按键里按一次出现的字母,接着找按两次出现的字母,以此类推,便可以完成枚举。

运行结果如下: 

i have a dream
23

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站题目:【洛谷】P1765手机问题——C语言-创新互联
分享路径:http://scyanting.com/article/ccgicd.html