此次上机中的4个题目项目6、项目7(选1)必做。其他2两题可从剩下的项目中选,也可从项目7中选。

【项目1:利用循环求和】求1000以内全部偶数的和(答案:250500)

要求:请编出3个程序来,分别用三种循环语句完毕,注意体会各种循环语句的运行过程及语法特点。

【项目2-分数的累加】编程序,输出1/3-3/5+5/7-7/9…+19/21的结果(答案:-0.383842)

提示:假设直接解决上面的问题有困难,能够设计一条“由易到难”的路线,逐渐解决当中要解决的问题。让自己的思路明朗起来。

(1)1+2+...+20  ——这个应该会

(2)1+1/2+1/3+…+1/20  ——分数的累加。注意两个整型相除,商也为整型,而显然求和结果应该是小数

(3)1/2+2/3+3/4+…+19/20  ——分子不全是1了,找找规律,稍加修改就好了

(4)1/2-2/3+3/4-…+19/20   ——要累加的值一正一负倒腾。用pow(-1,i)是个效率非常低的做法,不推荐使用。

技巧:专门设置一个变量s表示累加项的符号,取值随着循环,每次乘以-1。从而在+1、-1之间变化,循环加求和的累加要用累加的项(i/(i+1))乘以这个表示符号的s。

(5)1/3-3/5+5/7-7/9…+19/21  ——这是我们的目标

【项目3:乘法口诀表】编程序。输出一个乘法口诀表,形如

1x1=1

1x2=2  2x2=4  

1x3=3  2x3=6
 3x3=9

……

【项目4:输出完数】一个数假设恰好等于它的因子之和,这个数就称为“完数”。

比如6=1+2+3。再如8的因子和是7(即1+2+4),8不是完数。编程找出1000以内的全部完数。(答案:6  28  496)

提示:首先从2到1000构造循环控制变量为i的外层循环。每次循环中。利用内嵌的循环逐个地求出i的因子,并累加起来(为提高效率,可能的因子从1到i/2)。假设因子和等于i,则说明是全然数,输出。

然后继续循环,考察i+1……

【项目5:贪財的富翁】一个百万富翁遇到一个陌生人。陌生人找他谈一个换钱的计划,该计划例如以下:我每天给你十万元。而你第一天仅仅需给我一分钱。第二天我仍给你十万元,你给我两分钱,第三天我仍给你十万元,你给我四分钱,....,你每天给我的钱是前一天的两倍,直到满一个月(30天),百万富翁非常高兴,欣然接受了这个契约。请编程序,通过计算说明,这个换钱计划对百万富翁是否是个划算的交易。(答案:陌给富:3e+006,富给陌:1.07374e+007   富翁亏了)

提示:(1)须要计算出30天后陌生人给了百万富翁多少钱,百万富翁给了陌生人多少钱,然后才干做出推断;(2)想要看得清楚,能够选择列出每一天,两方交易获得的钱数。(3)给出參考解答,将每天累计给对方的钱列出来。非常直观。

【项目6:输出星号图】编程序输出。

【项目7:穷举法解决组合问题】(当然,全做完收效更好)

先阅读例题,领会穷举法(意为“穷尽式列举”,也称枚举)的思想,然后自行选题进行解决,掌握这样的程序设计的一般方法。

例题:小明有五本新书。要借给A,B,C三位小朋友,若每人每次仅仅能借一本,则能够有多少种不同的借法?

问题分析与算法设计:本问题实际上是一个排列问题。即求从5个中取3个进行排列的方法的总数。首先对五本书从1至5进行编号。然后使用穷举的方法。

如果三个人分别借这五本书中的一本,当三个人所借的书的编号都不同样时,就是满足题意的一种借阅方法。

以下是程序及其凝视,要注意利用三重循环“穷举”:

#include <iostream>
using namespace std;
int main()
{
int a,b,c,count=0;
cout<<"小明借书给三位小朋友书的方案有:"<<endl;
for(a=1;a<=5;a++) //穷举a借5本书中的1本的所有情况
for(b=1;b<=5;b++) //穷举b借5本书中的一本的所有情况
for(c=1;c<=5;c++) //穷举c借5本书中的1本的所有情况
if(a!=b&&c!=a&&c!=b) //推断三个人借的书是否不同,(a-b)*(b-c)*(c-a)!=0更好
{
++count;
cout<<count<<": "<<a<<", "<<b<<", "<<c<<endl;//输出方案
}
return 0;
}

任务:利用穷举的方法解决以下的问题(选做一道即算完毕任务,其它能够抽时间自由安排。多做会使你更聪明。)

(1)百钱百鸡问题:中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一。值钱三,鸡雏三。值钱一,百钱买百鸡,问翁、母、雏各几何?

提示:设鸡翁、鸡母、鸡雏的个数分别为x,y,z,题意给定共100钱要买百鸡,若全买公鸡最多买20仅仅,显然x的值在0~20之间;同理,y的取值范围在0~33之间。可得到以下的不定方程:

5x+3y+z/3=100

x+y+z=100

所以此问题可归结为求这个不定方程的整数解。

參考答案:

鸡翁0仅仅,鸡母25仅仅。鸡雏75仅仅。

鸡翁4仅仅,鸡母18仅仅。鸡雏78仅仅。

鸡翁8仅仅。鸡母11仅仅,鸡雏81仅仅。

鸡翁12仅仅。鸡母4仅仅,鸡雏84仅仅。

(2)年龄几何:张三、李四、王五、刘六的年龄成一等差数列。他们四人的年龄相加是26,相乘是880,求以他们的年龄为前4项的等差数列的前20项。

提示:设数列的首项为n,项差为a,则前4项之和为n+(n+a)+(n+a+a)+(n+a+a+a)=4*n+6*a",前4 项之积为n*(n+a)*(n+a+a)*(n+a+a+a)。同一时候有1<=a<=4和1<=n<=6。可採用穷举法求出此数列。

參考答案:2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59

(3)三色球问题:若一个口袋中放有12个球。当中有3个红的。3个白的和6个黒的,问从中任取8个共同拥有多少种不同的颜色搭配?

提示:设任取的红球个数为i,白球个数为j,则黒球个数为8-i-j。依据题意红球和白球个数的取值范围是0~3,在红球和白球个数确定的条件下,黒球个数取值应为8-i-j<=6。

參考答案:

不同的颜色搭配有:

红球:0,白球:2,黑球:6

红球:0,白球:3,黑球:5

红球:1,白球:1,黑球:6

红球:1,白球:2,黑球:5

红球:1,白球:3,黑球:4

红球:2,白球:0,黑球:6

红球:2,白球:1,黑球:5

红球:2,白球:2,黑球:4

红球:2,白球:3,黑球:3

红球:3,白球:0,黑球:5

红球:3,白球:1,黑球:4

红球:3,白球:2,黑球:3

红球:3,白球:3,黑球:2

(4)在以下的加法算式中,不同的符号代表不同的数字。同样的符号代表同样的数字。

请设计程序求出"都、要、学、C"4个符号分别代表的数字。

提示:让计算机解奥数题。穷举"都、要、学、C"4个符号分别代表的数字(从0到9)。然后进行组合,假设组合起来符合规则(不同的符号代表不同的数字。同样的符号代表同样的数字,且使等式成立),则为正解。

參考答案:

都:1 要:4 学:6 C:7

都:1 要:5 学:0 C:2

(5)有等式[※×(※3+※)]^2=8※※9,当中※处为1个数字,滴上了墨水无法辨认。请编程找出※表示哪个数字。

拓展:有等式[※×(※3○※)]^2=8※※9。当中※处为1个数字,○处为+、-、×、÷四个运算符之中的一个,现滴上了墨水无法辨认。

请编程找出※表示哪个数字,○表示哪个运算符。

參考答案

等式为:[1×(93+0)]^2=8649

等式为:[3×(23+8)]^2=8649

C++第4次实验(基础班)—循环结构程序设计的更多相关文章

  1. 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...

  2. 第五篇:python基础之循环结构以及列表

    python基础之循环结构以及列表   python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.pyth ...

  3. 基础语法-循环结构for

    基础语法-循环结构for 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.for循环格式 for(初始化表达式;循环条件表达式;循环后的操作表达式){ 执行语句(循环体); } ...

  4. 基础语法-循环结构do...while

    基础语法-循环结构do...while 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.do...while语句格式 do{ 执行语句; }while(条件表达式); 温馨提示: ...

  5. 基础语法-循环结构while

    基础语法-循环结构while 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.while语句格式 while(条件表达式){ 执行语句; } 二.while语句案例 /** * ...

  6. Python程序设计实验报告四:循环结构程序设计(设计型实验)

    安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  姚彩琴  学号3190505129 成绩 日期     2020.4.8     指导老师       修宇 [实验名称 ...

  7. 【C语言】第5章 循环结构程序设计

    第5章 循环结构程序设计 三种基本循环控制结构 使用while语句实现循环 先判断条件表达式,后执行循环体语句 while (循环条件表达式) { 循环体 } 用do-while语句实现循环 先无条件 ...

  8. python基础之循环结构以及列表

    python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成 ...

  9. C语言基础知识-循环结构

    用while打印出1~100之间7的倍数    int i = 1;     while循环是当条件表达式的结果为真时,执行大括号里面的循环体,重复执行直到条件表达式的结果为假时结束循环.     w ...

  10. java基础07 循环结构

    public class While02 { public static void main(String[] args) { /** * while(循环条件){ * 循环体(循环操作) * } * ...

随机推荐

  1. cmake 同时编译多个cpp文件

    cmake_minimum_required(VERSION 2.8) project(coding) file(GLOB_RECURSE EXTRA_FILES */*) add_custom_ta ...

  2. Linux API的fork()测试

    现在到docker的实施阶段, 其底层的namespace,cgroup应该深入了解了. 其调用的API也慢慢熟悉起来吧. #include <unistd.h> #include < ...

  3. .net开发CAD2008无法调试的解决方法

    把acad.exe.config文件修改为:------------------------------------------------------------------------------ ...

  4. linux基础学习目录

    以下用一个表格来罗列linux默认的目录或文件及其用途: 目录/文件 用途 来源 / /处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录.文件.设备都在/之下. - / ...

  5. Nodejs微信开发

    因为使用了Bot Framework开发了一个小功能,它目前支持了Skype\Teams\Slack等,但在国内来讲,微信还是一个比较流行的软件,所以需要接上微信 原来开发Bot的时候使用的是.Net ...

  6. Jenkins上配置Robot Framework测试邮件通知模板

    邮件效果 测试成功如下所示: jenkins_robot_success 测试失败如下所示: jenkins_robot_failure 通过这个模板,我们能够很直观地看出测试的执行情况,以及相关的统 ...

  7. hadoop运行常见错误

    1)“no job jar file set”原因 又是被折腾了一下午呀~~,“no job jar file set”就是找不到作业jar包的意思,然后就是提示找不到自定义的MyMapper类,一般 ...

  8. 记一次深刻的教训-----将mat数据转化为SequenceFile

    深刻的体会就是,“java.lang.NullPointer.Exception”就是空指针异常可能是由于数组部分元素未被初始化引起的. 1)使用jmatio将mat数据转化为SequenceFile ...

  9. linux dd命令实例讲解

    转:http://blog.chinaunix.net/uid-28549627-id-3922282.html 提到linux 系统中的dd命令,各位技术博友大多都很熟悉,用法也是好多,今天主要跟大 ...

  10. SublimeText3插件Emmet自定义HTML

    工作上总使用Sublime,Emmet默认生成html格式不太满足需要,生成后还需要额外添加一些元素,如下是自定义html格式的步骤,供大家参考: 1. 安装Sublime Text3.Emmet插件 ...