1.题目
使用秦九韶算法将一个字符串中的数字转换为对应进制的字符串
2.秦九韶算法讲解
- 秦九韶算法是一种将一元n次多项式的求值问题转化为n个一次式的算法。其大大简化了计算过程,即使在现代,利用计算机解决多项式的求值问题时,秦九韶算法依然是最优的算法。
在西方被称作霍纳算法,是以英国数学家霍纳命名的。
2.具体算法及举例:
一般地,一元n次多项式的求值需要经过(n+1)*n/2次乘法和n次加法,而秦九韶算法只需要n次乘法和n次加法。在人工计算时,一次大大简化了运算过程。
把一个n次多项式
改写成如下形式:
求多项式的值时,首先计算最内层括号内一次多项式的值,即
然后由内向外逐层计算一次多项式的值,即
这样,求n次多项式f(x)的值就转化为求n个一次多项式的值。
结论:对于一个n次多项式,至多做n次乘法和n次加法。
例如:将一个10进制的字符串转换为2进制的字符串进行输出
#include<iostream>
using namespace std;
int f(string a, int b) {
int res = 0;
for (int i = 0; i < a.length(); i++)
res = res * b + a[i] - '0';
return res;
}
int main() {
string a = "1101";
cout << f(a, 2);
return 0;
}
输出结果如下:
13
小小的思想,大大的应用。
如果有帮助,点个关注,相互交流,相互学习。