下载此文档

专业C第讲变量设计.ppt


文档分类:IT计算机 | 页数:约49页 举报非法文档有奖
1/49
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/49 下载此文档
文档列表 文档介绍
1
本章通过几种不同类型的算法实现,着重讨论算法实现中的变量设计问题,包括函数的参数、局部变量、标志变量的设计与应用。
从本章起,将围绕所谓的“评委评分”程序的设计和优化、程序功能的扩充逐步展开讨论。
本章涉及一些基本算法,这些算法的设计思想是朴素的。
第九讲 变量设计
2
~ 穷举、迭代计算
穷举计算
“百钱买百鸡”问题
判定素数
迭代计算
牛顿迭代法
级数计算(即:数列求和)
指数函数
正弦函数
最大公因数和最小公倍数
3
“百钱买百鸡”问题
公元前5世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:
鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?
【数学模型】
记x, y, z分别表示购买鸡翁、母、雏的数量,则有
这是一个不定方程,数学方法求解有较大难度。
4
“百钱买百鸡”问题
【算法设计】
显然有
即:将解集合投影到xoy平面上,将被包含在如下集合中
集合A共有 21×34=714个元素
利用计算机的高速度,对上述714个元素逐个试算,判断是否满足题意,并输出满足题意者。 ———— 这就是穷举法、亦称为枚举法。
5
计算流程
6
// 源程序文件名 #include <iostream> using namespace std;
int chicken100(); // 函数原型用于函数声明
int main()
{ chicken100(); // 函数调用
return 0; }
// 主函数起调度作用,尽可能地简单
7
int chicken100() { int cocks, hens, chicks, n=0;
for(cocks=0; cocks<=20; cocks++)
{
for(hens=0; hens<=33; hens++)
{
chicks = 100 – cocks – hens;
if(3*100 == 3*(5*cocks+3*hens)+chicks)
{
cout << ”鸡翁 ” << cocks << ” 只,鸡母 ” << hens << ” 只,鸡雏 ” << chicks << ” 只。” << endl;
n++;
}
}
}
return n; }
8
int chicken100() { int cocks, hens, chicks, n=0;
for(cocks=0; cocks<=20; cocks++)
{
for(hens=0; hens<=33; hens++)
{
chicks = 100 – cocks – hens;
if(3*100 == 3*(5*cocks+3*hens)+chicks)
{
cout << ”鸡翁 ” << cocks << ” 只,鸡母 ” << hens << ” 只,鸡雏 ” << chicks << ” 只。” << endl;
n++;
}
}
}
return n; }
9
程序编译、连接生成可执行文件 可执行文件的运行结果
10

专业C第讲变量设计 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数49
  • 收藏数0 收藏
  • 顶次数0
  • 上传人sxlw2018
  • 文件大小1.14 MB
  • 时间2021-01-15