P8597 [蓝桥杯 2013 省 B] 翻硬币 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

大一小白的第一篇博客,都是基于C语言完成的。

P8597 [蓝桥杯 2013 省 B] 翻硬币 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)_第1张图片

作为一道上古蓝桥杯省赛B组题,这道题的难度还是很简单的(或者说我思考的角度比较简单)

通过观察案例不难发现可以将问题转化为“两个改变的字符间有几个没改变的字符+1”

举个栗子:

***oo**

*o**o**

可以发现改变的2个字符中间只有1个,所以输出的是1+1=2

值得注意的是,如果有多段字符组合,需要将他们相加

如:

***oo** **********

*o**o** o****o****

改变的字符有(1+1)+(4+1)=7

附上我的代码

#include
#include
#include
#include
#include
//我个人的习惯:头文件全部都整上去

int main()
{
    int sum=0,i=0;//sum用于计数
    bool tmp=0;//tmp是关键,用于判断两个字符是否发生变化,bool类型不常用,可以积累一下
    char s1[1000]={'\0'};
    char s2[1000]={'\0'};

    scanf("%s",&s1);
    scanf("%s",&s2);

    for(;i

附上我自己的一些小积累:

  1. 开字符数组时记得将字符数组初始化为\0

  1. 用bool类型可以更好的实现判断,不过其实也可以用两个if语句来实现判断、

  1. 对于头文件跟string函数的使用需要留意,别把c++和java的一些语法搞混了(在写strlen时还写成了length.s1)

你可能感兴趣的:(没发现问题的题,蓝桥杯,c语言)