秦九韶算法

1.题目

使用秦九韶算法将一个字符串中的数字转换为对应进制的字符串

2.秦九韶算法讲解

  1. 秦九韶算法是一种将一元n次多项式的求值问题转化为n个一次式的算法。其大大简化了计算过程,即使在现代,利用计算机解决多项式的求值问题时,秦九韶算法依然是最优的算法。
    在西方被称作霍纳算法,是以英国数学家霍纳命名的。
    2.具体算法及举例:
    一般地,一元n次多项式的求值需要经过(n+1)*n/2次乘法和n次加法,而秦九韶算法只需要n次乘法和n次加法。在人工计算时,一次大大简化了运算过程。
    把一个n次多项式
    改写成如下形式:
    在这里插入图片描述
    求多项式的值时,首先计算最内层括号内一次多项式的值,即
    V1=an*x+a n-1
    然后由内向外逐层计算一次多项式的值,即
    在这里插入图片描述
    这样,求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

小小的思想,大大的应用。

如果有帮助,点个关注,相互交流,相互学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

loongloongz

相互鼓励,相互帮助,共同进步。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值