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

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

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

P1125笨小猴

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

using namespace std;
char a[110];//容纳输入字符串
int b[120],minn,maxn;//b[120]用来存储a~z出现的次数,maxn,minn分别表示最大次数和最小此书

bool isPrime(int x)//判断是否为素数
{
    if(x==0||x==1) return false;
    if(x==2) return true;
    for(int i=2;i*i<=x;i++)
    {
        if(x%i==0) return false;
    }
    return true;
}

int main()
{
    cin>>a;//输入
    int len=strlen(a);//长度
    for(int i=0;i<len;i++)
    {
        b[a[i]-'a']++;//计数
    }
    sort(b,b+27);//排序
    for(int i=0;i<=26;i++)
    {
        if(b[i]==0&&b[i+1]!=0) minn=b[i+1];//找出最小次数
        if(b[i]!=0&&b[i+1]==0) maxn=b[i];//找出最大次数
    }
    if(isPrime(maxn-minn)==false) cout<<"No Answer"<<endl<<"0";//输出
    else cout<<"Lucky Word"<<endl<<maxn-minn;
    return 0;
}

P1957口算练习题

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

using namespace std;
int n,a,b;
string c;
char l_c;

int len(int number)//计算位数(包括正数、负数、零)
{
    int x=0;
    if(number==0)
        return 1;
    if(number>0)
        while(number){
            number/=10;
            ++x;
        }
    if(number<0){
        x=1;
        number=-number;
        while(number){
            number/=10;
            ++x;
        }
    }
    return x;
}

int main()
{
    cin>>n;
    for(int i=1;i<=n;++i){
        cin>>c;
        int x;
        switch(c[0]){//switch case进行判断更加方便
            case 'a': cin>>a>>b;
                printf("%d+%d=%d\n",a,b,a+b);x=len(a+b)+2;
                l_c=c[0];break;//更新l_c
            case 'b': cin>>a>>b;
                printf("%d-%d=%d\n",a,b,a-b);x=len(a-b)+2;
                l_c=c[0];break;
            case 'c': cin>>a>>b;
                printf("%d*%d=%d\n",a,b,a*b);x=len(a*b)+2;
                l_c=c[0];break;
            default:
                cin>>b;
                a=0;
                int l=c.size();
                for(int i=0;i<l;++i)
                    a=a*10+c[i]-'0';
                switch(l_c)    {
                    case 'a':
                        printf("%d+%d=%d\n",a,b,a+b);x=len(a+b)+2;break;
                    case 'b':
                        printf("%d-%d=%d\n",a,b,a-b);x=len(a-b)+2;break;
                    case 'c':
                        printf("%d*%d=%d\n",a,b,a*b);x=len(a*b)+2;break;
                    default:break;
                }    
                break;
        }
        x=len(a)+len(b)+x;
        printf("%d\n",x);
    }
    return 0;
}

P5015标题统计(easy)

#include<bits/stdc++.h>

using namespace std;
int num;

int main()
{
    int c;
    while((c=getchar())!='\n')
    {
        if(c>='0'&&c<='9'||c>='a'&&c<='z'||c>='A'&&c<='Z') num++;
    }
    cout<<num;
    return 0;
}

P5734文字处理软件

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

using namespace std;
string str,l,r;
int t;

int main() 
{
    scanf("%d",&t);
    cin>>str;
    while(t--)
    {
        l="";
        r="";
        int lei,x,y;string in;
        scanf("%d",&lei);
        if(lei==1)
        {
            cin>>in;
            str+=in;
            cout<<str;//一号操作
        }
        if(lei==2)
        {
            scanf("%d%d",&x,&y);
            for(int i=x;i<=x+y-1;i++)
            in+=str[i];
            str=in;
            cout<<str;//二号操作
        }
        if(lei==3)
        {
            cin>>x>>in;
            for(int i=0;i<x;i++)
            l+=str[i];
            for(int i=x;i<=str.size();i++)
            r+=str[i];
            str=l+in+r;
            cout<<str;//三号操作
        }
        if(lei==4)
        {
            cin>>in;
            if(str.find(in)==-1)
            printf("-1");
            else printf("%d",str.find(in));
        }//四号操作
        cout<<endl;
    }
}

P1765手机(easy)

#include<bits/stdc++.h>

using namespace std;
int c,num[26]={1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4};//打表即可
int ans;
int main()
{
    while((c=getchar())!='\n')
    {
        if(c>='a'&&c<='z') ans+=num[c-'a'];
        if(c==' ') ans++;
    }
    cout<<ans;
    return 0;
}

P3741honoka的键盘(easy)

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

using namespace std;
int n;
char a[102];

int main()
{
    cin>>n>>a;
    int ans=0;
    for(int i=0;i<n;i++)
    {
        if(a[i]=='V' && a[i+1]=='K')//找出VK的换成X
        {
            ans++;
            a[i]='X';
            a[i+1]='X';
        }
    }
    for(int i=0;i<strlen(a);i++)
    {
        if(a[i]!='X' && a[i]==a[i+1])//找出第一个VV或者KK换成VK即可
        {
            ans++;
            break;
        }
    }
    printf("%d",ans);
    return 0;
}

今天是第一天,感觉有点累,题目大多还是比较简单的,但是第一次连续这么久一直写题真的有点累了,明天继续吧。加油,奥里给!

全部评论

相关推荐

09-29 00:03
门头沟学院 Java
点赞 评论 收藏
分享
10-31 13:04
南华大学 Java
嵌入式的小白:很多面试,面试前不会去打扰cto的,但一般cto不会在这些小事上刷人,只能说这个cto比较操心,啥重要不重要,紧急不紧急的,估计都会过问,平淡看待吧
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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