实际上我是新来的
我脑子里有一个问题,就像这样:
我得到了任意大小的向量的输入,但是在这种情况下,让我们来看一下:
vetor = {1, 2, 3, 4}
现在,我要做的就是取这个数字并求和每个数字(考虑到它的单位,十,十,千),然后将结果注册到一个整数变量中,例如“ int vec_value”。
考虑到上述向量,答案应为:vec_value = 4321。
我将把main.cpp保留在帖子中,但是我将告诉您如何计算结果,但这给了我错误的答案。
vetor[0] = 1
vetor[1] = 2
vetor[2] = 3
vetor[3] = 4
结果应为=(1 * 10 ^ 0)+(2 * 10 ^ 1)+(3 * 10 ^ 2)+(4 * 10 ^ 3)= 1 + 20 + 300 + 4000 = 4321。
程序给我的解决方案是4320,如果我随机更改值,答案将跟随新值,但数字仍然错误。
如果有人可以看看我的代码以查看我做错了什么,我将不胜感激!
谢谢..
帖子末尾有指向图片的链接,显示了错误结果的示例。 请记住,有时程序会给我正确的答案(这让我更加困惑)
代码:
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
vector<int> vetor;
srand(time(NULL));
int lim = rand() % 2 + 3; //the minimum size must be 3 and the maximum must be 4
int value;
for(int i=0; i<lim; i++)
{
value = rand() % 8 + 1; // I'm giving random values to each position of the vector
vetor.push_back(value);
cout << "\nPos [" << i << "]: " << vetor[i]; //just to keep in mind what are the elements inside the vector
}
int vec_value=0;
for(int i=0; i<lim; i++)
{
vec_value += vetor[i] * pow(10, i); //here i wrote the formula to sum each element of the vector with the correspondent unity, tens, hundreds or thousands
}
cout << "\n\nValor final: " << vec_value; //to see what result the program will give me
return 0;
}
答案 0 :(得分:0)
在主循环中尝试以下方法:
$(document).ready
这样,所有计算都是整数,您不受浮点舍入的影响。