Quicksum 定義:字串中每個字元的「位置索引 (1-based) × 字元值」之和。空格值為 0,大寫字母 A=1, B=2... Z=26。輸入多行字串(以 # 開頭結束),每行輸出其 Quicksum。
ACM:1×1 + 2×3 + 3×13 = 1 + 6 + 39 = 46MID CENTRAL:1×13 + 2×9 + 3×4 + 4×0 + 5×3 + 6×5 + 7×14 + 8×20 + 9×18 + 10×1 + 11×12 = 650# 字元結束輸入。#include <stdio.h>
#include <string.h>
int main()
{
int i, len, sum;
char str[255];
while(gets(str), str[0] != '#')
{
sum = 0;
len = strlen(str);
for(i = 0; i < len; i++)
{
if(str[i] == ' ') sum += 0;
else if(str[i] >= 'A' && str[i] <= 'Z')
sum += (i + 1) * (str[i] - 'A' + 1);
}
printf("%d\n", sum);
}
return 0;
}

gets(str), str[0] != '#' 利用逗號運算子:先讀取再判斷首字元。sum += 0 可省略)。str[i] - 'A' + 1 將 'A'~'Z' 映射為 1~26。i + 1(1-based)。gets() 不安全,建議改用 fgets(str, sizeof(str), stdin) 並手動移除換行符。sum 可能溢位 int,可用 long long。類似 ISBN 校驗碼、條碼校驗、雜湊函數等加權加總機制。