SICP~计算机程序的构造和解释~ 1.12 c++实现

题目: 采用递归计算过程计算出帕斯卡三角形的各个元素。

row:
0        1
1       1 1
2      1 2 1
3     1 3 3 1
4    1 4 6 4 1
5   . . . . . .
col: 0 1 2 3 4

 

//c++
//递归
#include<iostream>
using namespace std;
int pascaler(int row ,int col){ int value; if(col>row) { cout<<"error"<<endl; } else if(col==0||row==col){ value = 1; } else { value=(pascaler((row-1),col))+(pascaler((row-1),(col-1))); } return value; } int main() { int row,col; cin>>row>>col; cout<<pascaler(row,col)<<endl; return 0; } //迭代 #include<iostream> using namespace std; int pascaliter(int product,int count,int n) { int value; int max_count=n; if(count>max_count){ value = product; } else { value=pascaliter((count*product),(count+1),max_count); } return value; } int pascalclcu(int row,int col){ int valuex; valuex = (pascaliter(1,1,row)/((pascaliter(1,1,col))*(pascaliter(1,1,(row-col))))); return valuex; } int main() { int row,col; cin>>row>>col; cout<<pascalclcu(row,col)<<endl; return 0; }

 

posted @ 2015-01-14 12:46  Pxjw  阅读(496)  评论(0编辑  收藏  举报