不是作业什么的,只是个人对编码的兴趣,目前是我自己学习的。在网上发现这个问题很有趣。
想想我们是否有一个数字列表
1 2 2 4 3 6 4 2 5 4
这等于1x^2+2^4+3^6+4^2+5^4
当它们具有相同的指数时如何组合数字?这将成为5x^2+6x^4+3x^6
我认为在这种情况下我们可以使用链表吗?但我真的不知道使用这种数据结构
或者有什么其他方法可以解决这类问题?
首选 C++ 或 Java 中的示例
不是作业什么的,只是个人对编码的兴趣,目前是我自己学习的。在网上发现这个问题很有趣。
想想我们是否有一个数字列表
1 2 2 4 3 6 4 2 5 4
这等于1x^2+2^4+3^6+4^2+5^4
当它们具有相同的指数时如何组合数字?这将成为5x^2+6x^4+3x^6
我认为在这种情况下我们可以使用链表吗?但我真的不知道使用这种数据结构
或者有什么其他方法可以解决这类问题?
首选 C++ 或 Java 中的示例
你可以这样做:
#include <iostream>
#include <vector>
#include <map>
int main()
{
std::vector<int> nums{1, 2, 2, 4, 3, 6, 4, 2, 5, 4};
std::map<int, int> exponent_occurences;
for (unsigned int i = 1; i < nums.size(); i += 2)
exponent_occurences[nums.at(i)] += nums.at(i - 1);
for (auto& [exponent, coef]: exponent_occurences)
std::cout << coef << "x^" << exponent << std::endl;
return 0;
}