• Luogu [P2708] 硬币翻转


    硬币翻转

    题目详见:硬币翻转

    这道题是一道简单的模拟(其实洛谷标签上说这道题是搜索???),我们只需要每一次从前往后找相同的硬币,直到找到不同的硬币n,然后将找到的前n-1个相同的硬币翻过来,每翻一次让计数器tot+1,直到所有硬币都是正面后输出tot即可。

    AC代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int l,tot;
    char c[10001]; 
    int main()
    {
        cin>>c;
        l=strlen(c);
        for(int i=l;i>=1;i--)
        c[i]=c[i-1];
        while(1)
        {
            for(int i=1;i<=l;i++)
            {
                if(c[i]=='0')
                  break;
                else
                if(i==l)
                {
                    cout<<tot;
                    return 0;
                }
            }
            char a=c[1];
            for(int i=1;i<=l;i++)
            {
                if(a=='0')
                {
                    if(c[i]==a)
                      c[i]='1';
                    else
                      break;
                }
                else
                if(a=='1')
                {
                    if(c[i]==a)
                      c[i]='0';
                    else
                      break;
                }
            }
            tot++;
        }
        cout<<tot;
        return 0;
    }
  • 相关阅读:
    62 ip与int类型的转换
    60再谈指针
    59任由制转换
    58进制转换工具
    吉哥工作
    apple
    找第一个非0元素的位置
    若干个数据之和 不考虑溢出
    汇编程序w=x*y+z-200
    4位bcd数转换为2进制数
  • 原文地址:https://www.cnblogs.com/qiuchengrui/p/8505617.html
Copyright © 2020-2023  润新知