原题链接:蓝桥杯历届试题-翻硬币
解题思路:
题目给的例子:*o**o***o***
*o***o**o***
需要进行一次就可以;
*o**o***o***
*********o***
看出来了吗?三次:观察发现,对于一组不同,只需要用:后一个不同值的位置-首个不同的位置,比如
*o**o,*****,其中不同值分别是两个哦;所以后一个o的索引减去前一个o的索引=3;就这样分组进行;
参考代码:
#include<iostream> #include<string.h> using namespace std; int main() { char a[1001], b[1001]; scanf("%s", a); scanf("%s", b); int i, j,n,count = 0; n = strlen(a); for (i = 0; i < n; i++) { if (a[i] != b[i]) for (j = i + 1; j < n; j++) { if (a[j] != b[j]) { count += j - i ; i = j; break; } } } cout << count << endl; return 0; }
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复