笔试1

#include"stdio.h"
#include"string.h"
#include"stdlib.h"

int val[125];
//初始化val数组
void init(){
    int i=65;
    for(;i<91;i++){val[i]   =   i-64;}
    for(i=97;i<123;i++){val[i]  =   i-96;}
}
//计算连续字符字数
int total(char *input,char nowChar,int *i){

    int times=0;int length=strlen(input);
    if(nowChar<='Z'&&nowChar>='A'){
        nowChar -=  32;
        times   =   2;
    }else{
        times   =   1;
    }
    for(i[0]=1;i[0]<length;i[0]++){
        if(nowChar==input[i[0]]){times++;continue;}
        if(nowChar==input[i[0]]+32){times+=2;continue;}
        break;
    }
    return times;
}
//计算值和
int count(char *input){
    int i   =   0,res=0,iadd[1];
    int length=strlen(input);
    for(;i<length;i++){
        char nowChar    =   input[i];
        iadd[0]=0;
        int times       =   total(&input[i],nowChar,iadd);  //iadd  数组下标i向后iadd位
        res +=  times*times*val[nowChar];
        i+=iadd[0]-1;
    }
    return res;
}
int main(){

    int T;
    init();
    scanf("%d",&T);
    while(T--){

        int res;
        char input[10005];
        scanf("%s",input);
        printf("%d\n",count(input));
    }
    system("pause");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值