poj 1850(类似1019)

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int data[30][30];
void yanghui(){
    int i,j;
    for(i=0;i<=26;i++){
        for(j=0;j<=i;j++){
            if(j==0||i==j){
                data[i][j] = 1;
            }
            else{
                data[i][j] = data[i-1][j-1]+data[i-1][j];
            }
        }
    }
}
int main(){
    int i,len,sum,j;
    char c[15],t;
    yanghui();
    scanf("%s",c);
    len = strlen(c);
    for(i=1;i<len;i++){
        if(c[i-1]>=c[i]){
            printf("0\n");
            return 0;
        }
    }
    for(sum=0,i=1;i<len;i++){
        sum += data[26][i];
    }
    for(i=0;i<len;i++){
        t = (!i)?'a':c[i-1]+1;
        while(t<=c[i]-1){
            sum += data['z'-t][len-1-i];
            t++;
        }
    }
    printf("%d\n",sum+1);
    return 0;
}

 

posted @ 2021-08-09 14:42  智人心  阅读(14)  评论(0)    收藏  举报