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;
}
时间: 2024-11-09 10:54:26

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

迭代法对数计算B的N次方 SICP 计算机程序的构造和解释 1.16

使用Scheme的对数迭代法: #lang racket ;;N是偶数:b^n = (b^(n/2))^2 (define (square x) (* x x));定义乘积函数 (define (fast-expt b n);筛选 (expt-iter b n 1)) (define (expt-iter b n a) (cond ((= n 0) a);当n= 0,值为1 ((even? n)(expt-iter (square b)(/ n 2) a));判断是否为偶数 ((odd? n)(

SICP 计算机程序的构造和解释 1.21 寻找因子 Scheme、C++实现

寻找素数因子 要求用书中的smallest-divisor过程找出199, 1999, 19999的最小因子. Scheme Code: 主要流程: 定义寻找素数的过程 如果2的平方即4,大于测试值,那么它肯定是素数 如果n能和2整除,那么不是素数,最小因子是2 如果不是,回到过程find-div,再试试能不能与2+1整除,循环 #lang racket (define (square x)   (* x x)) ;定义筛选 (define (smallest-div n)   (find-di

《计算机程序的构造和解释(第2版)》【PDF】下载

<计算机程序的构造和解释(第2版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382255 内容简介 <计算机程序的构造和解释(原书第2版)>1984年出版,成型于美国麻省理工学院(MIT)多年使用的一本教材,1996年修订为第2版.在过去的二十多年里,<计算机程序的构造和解释(原书第2版)>对于计算机科学的教育计划产生了深刻的影响.第2版中大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器.

计算机程序的构造和解释原书第2版PDF

作者: Harold Abelson / Gerald Jay Sussman / Julie Sussman 出版社: 机械工业出版社 副标题: 原书第2版 原作名: Structure and Interpretation of Computer Programs 译者: 裘宗燕 出版年: 2004-2 页数: 473 定价: 45.00元 装帧: 平装 内容简介 · · · · · · <计算机程序的构造和解释(原书第2版)>1984年出版,成型于美国麻省理工学院(MIT)多年使用的一本

计算机程序的构造和解释笔录(1):构造过程抽象

Q: SICP是讲软件工程么? A:部分,但并非全部.主要是模块化和黑盒抽象,计算机中两大主要基本思想.SICP关心的是:"当系统复杂度爆炸时(或者在此之前),我们如何通过有效的方法和手段去控制系统的复杂度?" Q: SICP是讲编译原理么? A: 部分,另外,如同书名说描述的那样,SICP中的"编译"都是"解释",这种解释的行为,无外乎就是用一种机器的计算行为去模拟另一种机器. 一个计算机语言并不仅仅是让计算机去执行操作的一种方式,而是一种表达

斐波那契算法的对数解法 计算机程序的构造和解释 习题1.19

程序由Scheme语言编写,待会上别的语言实现. #lang racket ;斐波那契对数法 ;筛选 (define (fib n) (fib-iter 1 0 0 1 n)) (define (square x) (* x x)) (define (fib-iter a b p q count) (cond ((= count 0) b);count = 0时,fib(1) = 0 ((even? count);如果是偶数,那么,p,q的值分别为 ;p = p^2 + q^2 ;q = 2pq

计算机程序的构造和解释 1.21 寻找素数因子

寻找素数因子 要求用书中的smallest-divisor过程找出199, 1999, 19999的最小因子. Scheme Code: 主要流程: 定义寻找素数的过程 如果2的平方即4,大于测试值,那么它肯定是素数 如果n能和2整除,那么不是素数,最小因子是2 如果不是,回到过程find-div,再试试能不能与2+1整除,循环 #lang racket (define (square x) (* x x)) ;定义筛选 (define (smallest-div n) (find-div n

SICP 第一章 构造过程抽象 1

Chapter 1 Building Abstractions with Procedures .title { text-align: center } .todo { font-family: monospace; color: red } .done { color: green } .tag { background-color: #eee; font-family: monospace; padding: 2px; font-size: 80%; font-weight: normal

【SICP练习】4 练习1.11-1.12

练习1.11 这种题目太像是数学题目了,不过拿到编程上又有一些的难度.我们先根据题目中的条件,写出类似于第25页最下面的变换规则.我们先列出如下内容: a-- f(n-1)  f(2)  f(3)  f(4)  f(5) b-- f(n-2)  f(1)  f(2)  f(3)  f(4) c—f(n-3)  f(0)  f(1)  f(2)  f(3) 于是继而得出下式: a—a+2b+3c b—a c—b 于是核心部分已经出来了: (f-iter (a+2b+3c) a b (- count