编程珠玑3.7 – 2

1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 int main()
 5 {
 6     vector<double> a;
 7     vector<double> c;
 8     vector<double>::iterator ita;
 9     vector<double>::iterator itc;
10     int k, m;
11     int i, j;
12     double temp;
13 
14     cin>>k;
15     for (i = 0; i < k; i++) {
16         cin>>temp;
17         a.push_back(temp);
18     }
19 
20     for (i = 0; i < k+1; i++) {
21         cin>>temp;
22         c.push_back(temp);
23     }
24 
25     cin>>m;
26     if (m > k) {
27         for (i = 0; i < m-k; i++) {
28             ita = a.end();
29             itc = c.begin();
30             temp = *(c.end()-1);
31             for (j = 0; j < k; j++) {
32                 temp += (*itc++) * (*--ita);
33             }
34             a.push_back(temp);
35         }
36     }
37 
38     ita = a.begin();
39     for (i = 0; i < m; i++) {
40         cout<<*ita++<<endl;
41     }
42 }

需要注意的是,iterator指向最后一个元素时,如果++则指向end();iterator指向begin()时,如果--则会出错。

与一个特定的50阶递归进行求值的程序相比,我认为该程序的难度在于k是个变量,所以不能使用数组,而要动态分配内存。
原文链接: https://www.cnblogs.com/jxiaoyu/archive/2013/04/19/3031726.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/85297

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午9:58
下一篇 2023年2月9日 下午9:59

相关推荐