C ++中字符串字符的字母值总和

在这个问题中,我们得到了一个字符串str []的数组。我们的任务是找到数组中所有字符串的分数。分数定义为字符串位置与字符串字符字母值之和的乘积。

让我们举个例子来了解这个问题,

输入值 

str[] = {“Learn”, “programming”, “tutorials”, “point” }

说明 

“学习”的位置− 1→

sum = 12 + 5 + 1 + 18 + 14 = 50. Score = 50

“编程”的位置-2→

sum = 16 + 18 + 15 + 7 + 18 + 1 + 13 + 13 + 9 + 14 + 7 = 131
Score = 262

“教程”的位置-1→

sum = 20 + 21 + 20 + 15 + 18 + 9 + 1 + 12 +
19 = 135
Score = 405

“点”的位置− 1→

sum = 16 + 15 + 9 + 14 + 20 = 74
Score = 296

为了解决这个问题,一种简单的方法将遍历数组的所有字符串。对于每个字符串,存储位置并找到该字符串的字母值之和。乘积和求和并返回乘积。

算法

步骤1-遍历字符串并存储位置,对于每个字符串,请遵循步骤2和3-

步骤2-计算字符串字母的总和。

步骤3-打印位置和总和的乘积。

示例

用来说明上述解决方案工作原理的程序,

#include <iostream>
using namespace std;
int strScore(string str[], string s, int n, int index){
   int score = 0;
   for (int j = 0; j < s.length(); j++)
      score += s[j] - 'a' + 1;
   score *= index;
   return score;
}
int main(){
   string str[] = { "learn", "programming", "tutorials", "point" };
   int n = sizeof(str) / sizeof(str[0]);
   string s = str[0];
   for(int i = 0; i<n; i++){
      s = str[i];
      cout<<"The score of string ' "<<str[i]<<" ' is "<<strScore(str, s, n, i+1)<<endl;
   }
   return 0;
}

输出结果

The score of string ' learn ' is 50
The score of string ' programming ' is 262
The score of string ' tutorials ' is 405
The score of string ' point ' is 296