每日两小时编程之旅(二)
每日两小时编程之旅(二)
洛谷篇(入门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]);
} 今天练习的时间短了一点,题目还是比较简单的,这才刚开始两天,希望我可以坚持至少半年。一步一个脚印,一点一滴才能有收获。加油,奥里给!