gpt4 book ai didi

c++ - 使用数组元素执行计算

转载 作者:行者123 更新时间:2023-11-28 03:20:06 26 4
gpt4 key购买 nike

我正在尝试创建一个散列函数。该算法要求我获取字符串的每个字母并将其转换为 ASCII;根据它在字符串中的位置将它乘以一个数字(例如输入是 STACK;'S' 的 ASCII 为 344,将该值乘以 9^9 然后'T'的 ASCII 为 347 将该值乘以 8^ 8..等);然后将这些值加在一起。

我了解如何访问数组中的值以创建总和并将它们转换为 ASCII。我不明白我将如何访问数组以执行中间的计算。

当我构建程序时,我也收到“断言失败错误”。我查找了错误,它说它与错误的调用有关,但是我在我的代码中看不到任何错误的调用。

我的代码如下:

#include <iostream>
#include <string>

using namespace std;

int main()
{
string input ;
int finalanswer = 0;

cout << "Enter your first name please : " ;

cin >> input;

cout << "Your name is " << input ;

for (int x=0; x=input.size(); x++)
{
finalanswer += input[x];

cout << finalanswer ;
}

cin.get();
return 0;
}

最佳答案

for循环中的条件不对,应该是

for(int x=0; x < input.size(); x++)

使用您的代码,第二次执行循环体 xinput.size() 并且它太大而无法访问 input[ x] - 导致您看到的错误。


我不确定我是否 100% 理解预期的算法,但这可能会有所帮助:

int myPow(int x, int p)
{
if (p == 0) return 1;
if (p == 1) return x;
return x * myPow(x, p-1);
}

然后循环:

for(int x=0; x < input.size(); x++)
{
finalanswer += input[x] * myPow(9-x);

cout << finalanswer ;
}

关于c++ - 使用数组元素执行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15712558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com