1.P1055ISBN号码[NOIP2008普及]
题目链接
#include
using namespace std;
int ans,m,g,j;
int main(){
char b[15];
for(int i=1;i<=12;i++){
cin>>b[i];
if(b[i]!='-'){
j++;
ans+=(b[i]-'0')*j;
}
}
cin>>b[13];
if(b[13]=='X')g=10;
else g=b[13]-'0';
m=ans%11;
if(g==m)cout<<"Right"<else{
for(int i=1;i<=12;i++)cout<if(m==10)cout<<'X'<else cout<11<return 0;
}
2.P1200[USACO1.1]你的飞碟在这儿
题目链接
#include
using namespace std;
char a[256],b[256];//彗星,队伍
int main(){
gets(a);
gets(b);
int lena,lenb;
lena=strlen(a);
lenb=strlen(b);
int i,j,h=1,z=1,x[256],y[256];
for(i=0;i<=lena-1;i++){
x[i]=a[i]-'A'+1;
h*=x[i];
}
for(j=0;j<=lenb-1;j++){
y[j]=b[j]-'A'+1;
z*=y[j];
}
if((h%47)==(z%47)) cout<<"GO"<else cout<<"STAY"<return 0;
}
3.P1308统计单词数[NOIP2011普及]
题目链接
#include
#include
#include
#include
using namespace std;
char s1[100],c;
char s2[1000100];
int main(){
//freopen("testdata.in","r",stdin);
int i,num=0,j,flag,cnt=0,len1,len2,k;
scanf("%s",&s1);
while((c=getchar())!=EOF)
if(c!='\r'&&c!='\n')
s2[cnt++]=c;
len1=strlen(s1);
len2=strlen(s2);
for(i=0;iif(isupper(s1[i]))s1[i]=s1[i]-'A'+'a';
for(i=0;iif(isupper(s2[i]))s2[i]=s2[i]-'A'+'a';
num=0;
for(i=0;i0;
for(j=0;jif(s1[j]==s2[i+j])flag=1;
else{
flag=0;
break;
}
}
if(flag==1){
if(s2[i+len1]==' '||i+len1==cnt){
if(s2[i-1]==' '||i==0){
num++;
if(num==1)
k=i;
}
}
}
}
if(num>0)printf("%d %d\n",num,k);
else printf("-1\n");
return 0;
}
4.P1553数字反转(升级版)
题目链接
#include
#include
#include
char s[110],t[110];
int main()
{
//freopen("in.txt","r",stdin);
scanf("%s",s);
int len=strlen(s);
int op=len;
for(int i=0;iif(!isdigit(s[i]))
{
op=i;//记录符号下标
break;
}
for(int i=0;i1];//翻转前段
t[op]=s[op];
for(int i=op+1;i//翻转后段
int k=0;
while(t[0]=='0'&&t[1]!='.'&&t[1]!='/'&&t[1]!='%'&&strlen(t)>1)
{
for(int i=0;i//删除前导0
t[i]=t[i+1];
k++;//记录删除的长度
}
if(s[op]=='.')
{
while(t[len-k-1]=='0'&&t[len-k-2]!='.'&&t[len-k-2]!='/')
k++;//删除末尾0
for(int i=0;iprintf("%c",t[i]);
}
else if(s[op]=='/')
{
int x=op-k+1;
while(t[x]=='0')
{
for(int i=x;i1];//删除分母前导0
k++;
}
for(int i=0;iprintf("%c",t[i]);
}
else for(int i=0;iprintf("%c",t[i]);
printf("\n");
return 0;
}
5.P1598垂直柱状图
题目链接
#include
#include
#include
#include
using namespace std;
int a[110];
char s[110];
int main()
{
#ifdef LOCAL
freopen("in.txt","r",stdin);
#endif
int maxn=0;
for(int i=1;i<=4;i++)
{
gets(s);
int len=strlen(s);
for(int j=0;jif(isupper(s[j]))a[s[j]-'A'+1]++;
}
for(int i=1;i<=26;i++)
maxn=max(maxn,a[i]);
for(int t=maxn;t>0;t--)
{
for(int i=1;i<=26;i++)
{
if(a[i]>=t)
printf("* ");
else printf(" ");
}
printf("\n");
}
for(int i=(int)'A';i<=(int)'Z';i++)
printf("%c ",(char)i);
return 0;
}
6.P1914小书童——密码
题目链接
#include
using namespace std;
int main(){
int n,i,lena,m;
string a,b;
cin>>n;
cin>>a;
lena=a.size();
for(i=0;i<=lena-1;i++){
if((a[i]+n)>122)
b[i]=(a[i]+n)%122+96;
else b[i]=a[i]+n;
cout<cout<return 0;
}
当初写这里也是折腾好久,ASCII码啊字符串操作啊完全不知道(即将AFO弱鸡的怀旧口吻)
熟悉一些字符串的操作
在这之后的题应该会每一题发一篇题解,整理到洛谷试炼场部分的博客应该只会粘链接了