c++ - 如何通过一个错误修复此向量?
问题描述
在下面的代码块中,我传入了一个随机数,我想将其分解为 20 个基数的组件。例如,数字 12280,它可以分解为 . 1 x 20^3 + 10 x 20^2 + 14 x 20^1。这里的for循环将取那个随机数,减去20^(randomNumber),然后如果它给出一个负数,那么它将继续下一个较低的指数,直到找到给出正数的指数。然后 while 循环将获取随机数,将其减去 20^(第一个 for 循环找到的指数),然后将其推入向量中。然后它一直在下降,直到我们达到 0。
这是我的问题当我尝试运行程序时(对于 randNum=12280),程序输出 3 个中的 1 个、2 个中的 10 个和 1 个中的 13 个,而不是 1 个中的 14 个。它总是关闭一个。我怎样才能让它给我14个1?
vector<int> brokenUp(int randNum)
{
vector<int> powers;
double temp = randNum;
for (int j = randNum; j > 0; j--)
{
if (temp - pow(20, j) < 0)
{
continue;
}
while (temp - pow(20, j) > 0)
{
temp = temp - pow(20, j);
powers.push_back(j);
}
}
for (unsigned int e = 0; e < powers.size(); e++)
{
cout << powers.at(e) << endl;
}
return powers;
}
解决方案
推荐阅读
- leaflet - 如何获取圆的 Geojson 坐标?
- git - git责备已重命名多次的文件
- delphi - 如何使用 BDE dbiDoRestructure 在 Delphi 10.4 中添加字段?
- c++ - 如何检查 std::function 是否已设置且有效?
- angular - 大于时间字段 RXWeb 反应式表单验证器
- next.js - 当我在 Vercel 上推送到生产时,h1 标签双重渲染,如果在本地运行,它渲染得很好
- nginx - 如何检查和确认 nginx 中使用了哪个版本的 modsecurity
- javascript - 占位符随着 v-for 消失
- python - VsCode + Docker Container 在哪里测试 UI
- java - 用于获取应用于 Enterprise Architect 中活动的 ActivityParameters 的 API