每日两小时编程之旅(一)
每日两小时编程之旅(一)
洛谷篇(入门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;
} 今天是第一天,感觉有点累,题目大多还是比较简单的,但是第一次连续这么久一直写题真的有点累了,明天继续吧。加油,奥里给!

