luogu.org 试炼场关卡1-5 简单字符串

版权声明:https://blog.csdn.net/huashuimu2003 https://blog.csdn.net/huashuimu2003/article/details/86661993

p1088 【noip2008普及】isbn号码

题目

https://www.luogu.org/problemnew/show/P1055

代码

#include<bits/stdc++.h>
using namespace std;
char ISBN[13];
int b=1,sum=0;
int main()
{
	for(int i=0;i<13;i++)
		cin>>ISBN[i];
    for(int i=0;i<11;i++)
	{
   		if(ISBN[i]!='-')
    	{
    		sum+=(ISBN[i]-48)*b;
			b++;
		}	
	}
	sum=sum%11;
	if(sum==10)
	{
		if(ISBN[12]=='X') 
		{
			cout<<"Right"<<endl;
		}
		else 
		{
			ISBN[12]='X';
			cout<<ISBN;
		}
	}
	else
	{
		if(sum==(ISBN[12]-48)) 
		{
			cout<<"Right"<<endl;
		}
		else
		{
			ISBN[12]=sum+48;
			cout<<ISBN;
		}
	}
	return 0;
}

P1087 [USACO1.1]你的飞碟在这儿Your Ride Is Here

题目

https://www.luogu.org/problemnew/show/P1200

代码

#include<bits/stdc++.h>
using namespace std;
string comet,group;
int sum1=1,sum2=1;
int main()
{
	cin>>comet>>group;
	for (int i=0;i<comet.size();i++)
		sum1*=comet[i]-'A'+1;
	for (int i=0;i<group.size();i++)
		sum2*=group[i]-'A'+1;
	sum1%=47,sum2%=47;
	if (sum1==sum2) 
		puts("GO");
	else 
		puts("STAY");
	return 0;
}

P1308 统计单词数

题目

https://www.luogu.org/problemnew/show/P1308

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
    //用string库,调用getline, 直接读入一整行
    getline(cin,a);
    getline(cin,b);
    //转换大小写,可以都转换为大写,或者小写
    for (int i=0;i<a.length();++i)
        a[i]=tolower(a[i]);
    for (int i=0;i<b.length();++i)
        b[i]=tolower(b[i]);
    //因为连起来的不算,所以要在前后加几个空格,一定要是同样多的,同量减同量,等于同量
    a=' '+a+' ';
    b=' '+b+' ';
    //先看看会不会找不到,用a.find()和string::npos
    if (b.find(a)==string::npos)
        puts("-1");
    //如果找得到
    else
	{
        int alpha=b.find(a);
        int beta=b.find(a),count=0;//计数器初始化为0
        while (beta!=string::npos)
		{
            ++count;//计数器
            beta=b.find(a,beta+1);
        }
        printf("%d %d",count,alpha);//输出第一个和总共有几个
    }
    //函数返回值为0,结束整个程序
    return 0;
}

猜你喜欢

转载自blog.csdn.net/huashuimu2003/article/details/86661993
今日推荐