每日两小时编程之旅(二)

每日两小时编程之旅(二)

洛谷篇(入门5-字符串)

P1321单词覆盖还原(easy)

#include<bits/stdc++.h>//万能头文件

using namespace std;
char a[266];
int num1,num2;

int main()
{
    cin>>a;
    int len=strlen(a);
    for(int i=0;i<len;i++)//简单计数即可
    {
        if(a[i]=='b'||a[i+1]=='o'||a[i+2]=='y') num1++;
        if(a[i]=='g'||a[i+1]=='i'||a[i+2]=='r'||a[i+3]=='l') num2++;
    } 
    cout<<num1<<endl<<num2;
    return 0;
}

P2553数字反转(升级版)

#include<bits/stdc++.h>
//(重点)printf输出时会自动去掉数字前面的0
using namespace std;
typedef unsigned long long ll;//因为20位,long long也不够,而unsigned long long 刚好可以过这题
char a[25];

ll fun(ll x)//数字反转函数
{
    ll y=0;
    while(x)
    {
        ll z=x%10;
        y=y*10+z;
        x/=10;
    }
    return y;
}

int main()
{
    cin>>a;
    int len=strlen(a);
    for(int i=0;i<len;i++)
    {
        if(a[i]=='.')
        {
            ll num1=0,num2=0;
            for(int j=0;j<i;j++)
            {
                num1=10*num1+(a[j]-'0');
            }
            for(int k=i+1;k<len;k++)
            {
                num2=10*num2+(a[k]-'0');
            }
            num1=fun(num1),num2=fun(num2);
            printf("%lld.%lld",num1,num2);
            return 0;
        }
        else if(a[i]=='/')
        {
            ll num1=0,num2=0;
            for(int j=0;j<i;j++)
            {
                num1=10*num1+(a[j]-'0');
            }
            for(int k=i+1;k<len;k++)
            {
                num2=10*num2+(a[k]-'0');
            }
            num1=fun(num1),num2=fun(num2);
            printf("%lld/%lld",num1,num2);
            return 0;
        }
        else if(a[i]=='%')
        {
            ll num=0;
            for(int j=0;j<i;j++)
            {
                num=10*num+(a[j]-'0');    
            }
            num=fun(num);
            printf("%lld%%",num);
            return 0;
        }
    }
    ll num=0;
    for(int i=0;i<len;i++)
    {
        num=10*num+(a[i]-'0');    
    }
    num=fun(num);
    printf("%lld",num);
    return 0;
}

P1200你的飞碟在这儿Your Ride Is Here(easy)

#include<bits/stdc++.h>

using namespace std;
typedef long long ll;
char a[10],b[10];
ll num1=1,num2=1;

int main()
{
    cin>>a>>b;
    int lena=strlen(a);
    int lenb=strlen(b);
    for(int i=0;i<lena;i++)
    {
        num1*=(a[i]-'A'+1);
    }
    for(int i=0;i<lenb;i++)
    {
        num2*=(b[i]-'A'+1);
    }
    if(num1%47==num2%47) cout<<"GO";
    else cout<<"STAY";
    return 0;
}

P1597语句解析(easy)

#include<bits/stdc++.h>

using namespace std;
int a[3];
char s1,s2;

int main()
{
    while (scanf("%c:=%c;",&s1,&s2)==2)
     a[s1-'a']=s2>='0' && s2<='9' ? s2-'0' : a[s2-'a']; //一步到位
    printf("%d %d %d",a[0],a[1],a[2]);
}

今天练习的时间短了一点,题目还是比较简单的,这才刚开始两天,希望我可以坚持至少半年。一步一个脚印,一点一滴才能有收获。加油,奥里给!

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务