ACM_小技巧

1.上取整

int m,n,ans;
ans=(m+n-1)/n;

例如:
被除数26,除数5,商上取整得6,即(26+5-1)/5=6。
被除数30,除数5,商上取整得6,即(30+5-1)/5=6(int是下取整)。

2.字母转数字

char a[100000+10];
cin>>a;
for(int i=0;i<strlen(a);i++)
{
    a[i]=a[i]-('a'-'0');//字母转数字a~z:0~25 
}
for(int i=0;i<strlen(a);i++)
{
    a[i]=a[i]+('a'-'0');//数字转字母 
}

或者更简洁的

char a;
int d;

cin>>a;//字母转数
d=a-'a';
cout<<d;

cin>>d;//数转字母
a=d+'a';
cout<<a;

3.统计字符串每个字母数量

scanf("%s",a);
int n=strlen(a);
for(int i=0;i<n;i++)
    x[a[i]-'A']++;//统计大写字母

猜你喜欢

转载自blog.csdn.net/aaakkk_1996/article/details/81096277