用穷举法设计程序
高中信息技术《用穷举法解决问题》优质教案、教学设计

《用穷举法解决问题》教学设计工作单位:授课老师:课型:新授课学科:信息技术一、教学内容分析本节课是《算法与程序设计》(教育科学出版社2004 版选修本)第三章“算法的程序实现”中第二节“用穷举法解决问题”的内容。
穷举法是程序设计中使用最为普遍的一种基础算法。
它利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检查,从中找出符合要求的答案。
穷举法的基本结构为For......Next 语句+if ....... then 条件判断的应用,该知识点在第二章《程序的基本结构》中已经学过,而且穷举法对后面的排序、查找和递归等算法的学习也具有示范和引领作用。
通过本节课的学习让学生理解穷举法的思想,掌握穷举法解决问题集的基本过程,以及常用的优化方法。
二、学情分析本节课的教学对象是高二年级的学生,他们已具有一定的分析能力、抽象思维能力和逻辑推理能力,并且此之前学习了用流程图描述算法、VB 的数据表示和处理、程序的三大结构以及解析法,能用VB 编写简单的程序。
今天学习穷举法其实学生在前面的循环语句学习中已经用到这种思想,只不过没有给学生提出穷举法这个概念,现在从算法这个角度把这个概念提出来,让学生理解穷举法的思想,掌握枚举算法的使用范围、解题步骤和程序框架、能用穷举法解决问题并能根据具体问题对穷举法进行优化。
因此本节课的教学目标是:第一,能用穷举法对问题进行分析及设计算法;第二,能根据分析补充程序的关键部分;第三,能合理的进行算法优化。
三、教学目标1、知识与技能:(1)了解穷举法的基本概念;(2)能归纳出穷举法解决问题的方法和步骤;(3)能根据具体条件优化穷举算法;2、过程与方法:(1)掌握穷举法求解问题的基本过程。
(2)在学习过程中,发现穷举法的规律,并把它运用实际问题的解决中去。
(3)针对解决问题的过程与结果进行有效的评价。
3、情感态度价值观:(1)关注穷举法在社会生活中的应用,激发学习的热情。
用穷举法求解问题的实践示例

利用穷举法解决问题一、填空题解决问题常见的算法有:解析法、穷举法、递归法、冒泡排序法,根据问题选择合适的算法。
1. 列举所有可能的情况,逐个判断有哪些是符合问题所需要的条件,从而得到问题的解答,这是的思路。
2、水仙花数是一个三位数,其各位数字的立方和等于该数本身,如333153153=++,要找出所有的水仙花数,选择的算法是。
3、一张单据上有一个5位数的号码67__ __8,其中百位和十位的数字看不清楚了,但知道该数能够被78整除,也能被67整除,求出该号码。
应该选择的算法是。
4. “百钱买百鸡”问题:已知公鸡每只5元,母鸡每只3元,每3只小鸡1元,用100元买100只鸡,问每种鸡应各买多少?应该选择的算法是。
二、分析程序写出运行结果或补全程序。
1、“百钱买百鸡”问题:已知公鸡每只5元,母鸡每只3元,每3只小鸡1元,用100元买100只鸡,问每种鸡应各买多少?(1)使用三重循环,代码如下:Private Sub Command1_Click()Dim x As Integer, y As Integer, z As IntegerFor x = 0 To 20For y = 0 To 33For z = 0 To 99 Step 3If ThenPrint "公鸡"; x, "母鸡"; y, "小鸡"; zEnd IfNextNextNextEnd Sub(2)使用二重循环,程序如下:Private Sub Command1_Click()Dim x As Integer, y As Integer, z As IntegerFor x = 0 To 20For y = 0 To 33z =If ThenPrint "公鸡"; x, "母鸡"; y, "小鸡"; zEnd IfNextNextEnd Sub2、一张单据上有一个5位数的号码67__ __8,其中百位和十位的数字看不清楚了,但知道该数能够被78整除,也能被67整除,求出该号码。
用解析法和穷举法设计程序

4.1—4.2 用解析法、穷举法设计程序【学习目标:】1、理解解析法和穷举法2、分清两者之间的区别在经过大量编程实践之后,人们总结出很多行之有效的算法来解决实际问题。
常用的方法有:解析法、穷举法、查找法、排序法、递归法等。
4.1 解析法所谓解析法是指:通过分析问题中各要素之间的关系,用最简练的语言或形式化的符号来表达它们的关系,得出解决问题所需的表达式,然后设计程序求解问题的方法。
例1:求三角形面积已知a、b、c分别为三角形的三条边长,利用海伦公式求该三角形面积p=(a+b+c)/2编程实现:输入边长a,b,c,如果能构成三角形,输出面积,否则输出“No Answer!”界面如下:Dim a As Single , b As Single , c As Singlea=val(text1.text)b=val(text2.text)c=val(text3.text)If thenp=(a+b+c)/2s=sqr(p*(p-a)*(p-b)*(p-c))text4.text=format(s,”0.00”) ‘结果保留两位小数Elsetext4.text=”no answer”End If根据上述回答下列问题(8分,每空4分)(1)、利用海伦公式求三角形面积的算法是_____(解析法/查找法/枚举法/排序法)。
(2)、填写出参考程序中空白处的表达式________(填写字母:A/B/C/D)A、a + b > c or a + c > b and b + c > aB、a + b > c or a + c > b or b + c > aC、a + b > c and a + c > b or b + c > aD、a + b > c and a + c > b and b + c > a(1)解析法(2)D用解析法求解问题,许多时候并非只是计算一个解析式就可以完事,还要根据问题给出的已经条件,运用归纳、演绎等逻辑方法,揭示问题各要素之间的关系,寻找表示这种关系的表达式,有时需要计算的解析式是一组而不仅仅是一条。
c语言穷举法傻瓜教程

穷举法1.密码箱问题#include<stdio.h>main(){int i,key;printf("请设定旅行箱的密码(000-999):"); scanf("%d",&key);printf("\n你的旅行箱密码是:");for(i=0;i<=999;i++)if(i==key)if(i<10)printf("%d\n",i);else if(i<100)printf("%d\n",i);else printf("%d\n",i);}2.百钱买百鸡问题#include<stdio.h>main(){int i , j , k;/*准备输出格式*/printf("\t公鸡\t母鸡\t小鸡\n");for(i=0;i<=20;i++)for(j=0;j<=33;j++){k=100-i-j;if(k%3==0 && i*5+j*3+k/3==100) printf("\t%d\t%d\t%d\n",i ,j ,k); }}例 2 :36 块砖,36 人搬。
男搬 4 ,女搬 3 ,两个小儿抬一砖。
要求一次全搬完。
问需男、女、小儿各若干(必须都有)?请同学们先分析第一步:问题所涉及的情况;analysis:都男的搬,需9人;都女的搬,需12人,都小孩搬,需72人;小孩书需要是2的整数倍;解:#include<stdio.h>main(){int i,j,k;for(i=0;i<=9;i++)for(j=0;j<=12;j++){k=36-i-j;//消去参数需放在最后一个for循环里面if(k%2==0&&i*4+j*3+k*0.5==36)printf("%d\t%d\t%d\n",i,j,k);}作业:换零钞问题:一张100元,换成20,10,5,1面值的零钞,每种至少一张,共有哪些换法,总计多少种换法?都换20:5张;----i都换10:10张;----j都换5:20张;----k都换1:100张----tt=100-i-j-k;解:#include<stdio.h>main()int i,j,k,t;for(i=1;i<=5;i++)for(j=1;j<=10;j++)for(k=1;k<=20;k++){t=100-i*20-j*10-k*5;if(i*20+j*10+k*5+t==100&&t>0)printf("%d\t%d\t%d\t%d\n",i,j,k,t);}}2.从1到100的自然数中,每次取出两个数,要使它们的和大于100,共有哪些取法,总计多少种取法?#include<stdio.h>main(){static int count=0;int i,j;for(i=1;i<=100;i++)for(j=1;j<=100;j++){if((i+j)>100&&j!=i){count++;printf("i=%d\tj=%d\n",i,j);}}printf("循环次数为%d\n",count);}。
用穷举法求解的基本过程

用穷举法求解的基本过程穷举法又称试探法,是求解复杂问题常用的一种算法。
它被用来求解实际生活中各种数学、物理、化学、经济和社会等问题,它具有良好的实用价值。
穷举法是求解复杂问题的一种有效方法。
一、基本步骤(1)明确问题。
明晰问题,确定问题的求解内容,定义解空间。
(2)构建搜索树。
将解空间的每一个可能情况看作一个结点,绘制搜索树,综合运算问题的知识,将搜索空间分拆成若干小搜索空间,由此得出结点关系。
(3)生成搜索策略。
根据问题特点及给定的条件来确定搜索策略,选择最有效的搜索方式进行搜索,此步骤将决定整个穷举法求解问题的有效性。
(4)开始搜索。
依据构建的搜索树和确定的搜索策略开始搜索,首先检测第一个结点,根据条件检测的结果如果不满足就进行下一个结点的检测,直至找到最终的结果,搜索停止。
(5)结果验证。
检查搜索结果,验证是否符合原问题的要求,确保问题得到正确的求解结果。
二、优缺点(1)算法在求解复杂问题上有良好的实用价值,能够较好地把问题分解为若干小问题。
(2)搜索空间确定时,受限于其解空间的大小,穷举法在处理解空间较大的问题时存在搜索时间长的问题。
(3)穷举法在求解给定问题时,必须要进行大量的计算,计算量较大,影响了算法的效率。
(4)穷举法也缺乏一定的针对性,如果解空间较大,则需要花费更多的时间来完成。
穷举法是求解复杂问题的一种有效的方法,它具有良好的实用价值,综合运用数学、物理、化学、经济和社会等问题,可以有效地搜索出最优解。
但是,该算法也存在搜索时间过长、计算量大、缺乏针对性等弊病,该如何改进才能更好地提高求解复杂问题的效率,因此,对穷举法还有很大的改进空间,需要不断探索新的方法去改进穷举法,从而使它更好地服务于实践生活。
用穷举法设计程序导学案

课题:用穷举法设计程序班级:______小组:______姓名:______组内评价:______老师评价:______【学习目标】了解穷举法的基本概念掌握用穷举法设计程序的基本思路。
了解穷举法的原理和适用的条件,如何控制运算的规模并提高效率进一步理解用计算机解决问题的方法:分析问题、设计算法、编写程序、调试程序的过程【学习重点】理解穷举法的思想,能结合实际问题运用穷举法并用程序实现。
【学习难点】学会分析问题,合理控制穷举法运行的次数及规模,防止程序出现溢出等错误。
【学法指导】预习4.2节用穷举法设计程序部分的内容,通过自主学习,独立解决下面的问题预习案【导学部分】1、小陈学校的3个环保活动小组经常利用节假日去栽树。
有一天,李老师问小陈3个小组各栽了多少树?因为李老师是教数学的,小陈就调皮地回答:“3个小组的栽树数量相乘的积是30723,您能把3个组的栽树数量算出来吗?”李老师说:“只有这个条件不能确定答案呀。
你能补充点情况吗?”于是小陈补充说:“A组都是大个子同学组成的,栽的树虽然不到100棵,但比另外两组合起来的还要多。
栽树最少的C组也早就超过了10棵。
”这时李老师说,“那我算出来了。
”李老师是怎样算出来的呢?。
2、请写出你对穷举法的理解和认识。
3、比较下列程序循环的次数程序1:Dim a, b, c As Integern = 30723For c=1 to n/2For b=1 to n/2If n Mod (c * b) = 0 Thena = n \ c \ bIf a < 100 And a > b + c Then Print "a="; a, "b="; b, "c="; cEnd IfNext bNext c程序2:Dim a, b, c As Integern = 30723For c=10 to n/2For b=c to n/2If n Mod (c * b) = 0 Thena = n \ c \ bIf a < 100 And a > b + c Then Print "a="; a, "b="; b, "c="; cEnd IfNext bNext c程序3:Dim a, b, c As Integern = 30723For c=10 to sqr(n)For b=c to sqr(n)If n Mod (c * b) = 0 Thena = n \ c \ bIf a < 100 And a > b + c Then Print "a="; a, "b="; b, "c="; cEnd IfNext bNext c程序4:Dim a, b, c As Integern = 30723For c=10 to 100For b=c to 100If n Mod (c * b) = 0 Thena = n \ c \ bIf a < 100 And a > b + c Then Print "a="; a, "b="; b, "c="; cEnd IfNext bNext c4、现有面值为1元、2元和5元的钞票若干,试从这些钞票中取出30张使其总面值为100元,问有多少种取法?你是怎么做的?5、小陆忘记了自己设置的邮箱密码,但是记得密码只有两位,而且全是数字,请问用什么方法可以让小陆登录自己的邮箱?探究案【合作探究】如果问题只有一个变数,穷举是容易的,如果有二个变数就难多了。
用穷举法设计算法解析
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
x=0,y=25,z=75
x=4,y=18,z=78
x=8,y=11,z=81
x=12,y=4,z=84
#include<cstdio>
第1次优化
int main()
{
int x,y,z;
for(x=0;x<=20;x++)
for(y=0;y<=33;y++)
关系表达式 thisman!=‘A’ thisman==‘C’ thisman==‘D’ thisman!=‘D’
⑵关系表达式的计算结果只有0(假)和1(真)两种结果。 现在“已知三个人说的是真话,一个人说假话”,也就是表 中的4个关系表达式中有3个是真的,1个是假的。
因此4个关系表达式的值的和应该等于3。定义变量cond 表示四个关系表达式的和
}
#include<cstdio> using namespace std; int main() { char thisman;
int cond; for(thisman='A'; thisman<='D';thisman++) {
cond=(thisman!=‘A’)+(thisman==‘C’) +(thisman==‘D’)+(thisman!=‘D);
printf(“%d\n”,i); } }
i←1
i≤100 N
Y i能被7或9整除 N
Y
输出i
i← i +1
结束
问题4:打印输出由1、2……8、9 这九个数字组成的所有可能的二位 开始
《穷举法》教学设计
§4.2用穷举法设计程序一、教学目标课程标准规定本节内容主要在于穷举法与问题解决。
包括两个方面:1、理解穷举法的思路。
2、能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问题。
二、学情分析本节内容的教学对象是高一或高二年级学生,他们已经具备了一定的逻辑思维、分析问题、表达思想等能力。
同时,通过前三个章节的学习与实践,学生已初步体验了穷举法的基本思想,经历了用计算机解决问题的过程与步骤,学会了对计算机程序进行调试,掌握了程序的三种基本结构等基础知识,为本节内容的学习提供了良好的基础。
三、教材分析1、本节主要内容介绍穷举法是程序设计中使用得最为普遍、大家必须熟练掌握和正确运用的一种算法。
它利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检查,从中找出符合要求的答案。
用穷举算法解决问题,通常可以从以下两个方面进行分析:⑴确定范围:问题所涉及的情况有哪些,情况的种数可不可以确定。
⑵验证条件:分析出来的这些情况,需要满足什么条件,才成为问题的答案。
只要把这两个方面分析好了,问题自然会迎刃而解。
本节内容是广东教育出版社出版的普通高中信息技术(选修1)《算法与程序设计》教材第四章第2节的教学内容,包括有穷举法的基本思路,用穷举法求解问题,穷举法中穷举方案的选择等。
2、重点难点分析教学重点:⑴建立正确的数学模型,确定穷举方案。
⑵根据命题确定变量的取值范围。
⑶正确表达“符合条件”的判断。
教学难点:⑴恰当安排穷举的方式,使得算法的效率更高。
⑵如何评价各种穷举策略的优劣。
3、课时安排1课时。
四、教学环境多媒体网络教室、投影仪等。
五、教学过程六、学习评价在教学过程中,设置了学生自评、互评,教师点评等多种评价方式。
同时制订了评价信息反馈表,充分发挥了教学评价的作用。
(1-4)程序设计算法举例
1、已知xyz+yzz=532,其中 、已知 均为一位数, ,其中x,y,z均为一位数,编程求出满足条 均为一位数 件的x,y,z所有组合。 所有组合。 件的 所有组合 #include<stdio.h> void main( ) { int x,y,z; for(x=1;x<=9;x++) for(y=1;y<=9;y++) for(z=0;z<=9;z++) { if(x*100+y*10+z+t*100+z*10+z==532) printf(“x:%d,y:%d,z:%d\n”,x,y,z); } }
3、已知四位数a2b3能被 整除,编写一个 程序求满足此要 、已知四位数 能被23整除 能被 整除,编写一个C程序求满足此要 求的四位数。 求的四位数。 #include<stdio.h> void main( ) { int a,b,n; for(a=1;a<=9;a++) for(b=0;b<=9;b++) { n= a*1000+200+b*10+3; if(n%23==0) printf(“%d\n”,n); } }
2、编写一个程序求出200~300之间的数,且满足条件:它们三 、编写一个程序求出 之间的数, 之间的数 且满足条件: 个数字之积为42,三个数字之和为12。 个数字之积为 ,三个数字之和为 。 #include<stdio.h> void main( ) { int n,i1,i2,i3; for(n=200;n<=300;n++) {i1=n/100; i2=n%100/10; i3=n%10; if(i1+i2+i3==12&&i1*i2*i3==42) printf(“%d\t”,n); }
用穷举法解决问题教学设计
用穷举法解决问题一、教材分析:《用穷举法解决问题》是高中信息技术选修模块《算法与程序设计》第三章《程序的实现》第二节内容。
本章侧重于运用算法解决实际问题,设计合理的算法并编程实现。
本节主要阐述穷举法,该方法应用广泛,比较常见,存在于生活与学习之中。
经典问题有水仙花数、搬砖问题、鸡兔同笼、百鸡百钱等。
二、学生分析:学生在通过第1、2两章的对VB的基本知识系统加以学习。
学生可以利用上述的基础知识,结合前一阶段学习的VB程序设计的基本结构,进一步学习本节的相关知识内容。
三、教学目标1.知识目标:了解什么是穷举法,穷举法的特点,掌握利用穷举法解决问题的基本要求;学会编写程序实现穷举法。
2.过程与方法:经历用穷举法求解问题的基本过程,发现穷举的规律,并把它运用实际问题的解决中去,从而培养学生的分析问题、解决问题的能力。
3.情感态度与价值观:通过用穷举法解决实际问题,培养学生对程序设计的兴趣和热情。
四、教学重点与难点教学重点:能够利用穷举法解决实际问题。
教学难点:穷举的范围的确定,穷举效率的评价。
五、教学思路及教法:课本在介绍穷举法时用的例子是一个相对复杂的演讲比赛分组的问题。
我个人认为,这样的一个引入部分不适合我们的学生,一是学生不是很感兴趣,二是比较复杂。
所以在教学中选取了学生所熟悉的、又能反映穷举思想的例子:水仙花数问题的解决作为主题进行学习穷举法的思想。
本节课教学中我主要采取任务驱动法,并结合引导探究、讲授、小组讨论等多种教学方法。
从而培养了学生的分析问题、解决问题的能力及合作、参与意识。
六、教学过程:(一)游戏激趣导入下面请大家打开桌面上的1位数破解密码的程序:小组间通过竞争和协作使得每个学生都积极参与,问题解决请学生运行该程序,破解密码。
(每排为一组,看谁破解的快)小组讨论破解方法与技巧,请破解出密码的学生介绍经验:因为是一位数的密码,采取一个一个的去尝试。
让学生亲身体验,消除对密码破解程序神秘感。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《穷举法解决问题》教学设计
《用穷举法设计程序》
一、教学目标
1、知识与技能
⑴了解穷举法的基本概念及用穷举法设计算法的基本过程。
⑵分析建立正确的数学模型,归纳穷举法穷举技巧。
⑶能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问题。
2、过程与方法
⑴经历用穷举法求解问题的基本过程。
⑵能通过实际问题的分析、求解过程,尝试归纳出利用穷举法解决问题的思路和方法。
⑶体验穷举策略在穷举法中的地位和作用,并选择适当的穷举方案解决问题。
3、情感态度与价值观
⑴引导学生关注穷举法在社会生活中的应用,进一步提高利用信息技术解决实际问题的能力。
⑵通过小组讨论与探究活动,提高团队合作能力,促进探究的热情。
⑶在解决问题的过程中进一步培养和提升学生的逻辑思维能力。
二、学情分析
本节内容的教学对象是高一年级学生,他们已经具备了一定的逻辑思维、分析问题、表达思想等能力。
同时,通过前几个章节的学习与实践,学生已经历了用计算机解决问题的过程与步骤,学会了对计算机程序进行调试,并掌握了顺序、循环、条件三种程序结构,为本节内容的学习提供了良好的基础。
前一节的学习,学生掌握了如何用解析法设计程序,但现实生活中也有很多问题往往无法用解析法找到答案,这时就需要使用计算机来帮助我们逐个列举出可能的情况,从而引出本课内容——“穷举法”。
三、教材分析
1、教学内容:
本节内容是广东教育出版社出版的普通高中信息技术(选修1)《算法与程序设计》教材第四章第2节的教学内容,包括:穷举法的基本思路,用穷举法求解问题(第一课时),穷举法中穷举方案的选择等(第二课时)。
而本节课是穷举法的第一课时(用穷举法解决问题的基本过程)。
2、重点难点分析:
教学重点:
用穷举法解题的基本思路和过程。
教学难点:
分析问题,建立数学模型,构造算法。
3、课时安排:1课时。
四、教学方法
主要教学方法:讲授法演示法任务驱动情境教学
主要学习方法:小组协作自主探究
五、教学环境
多媒体网络教室投影仪多媒体课件
一、教学目标分析
1.知识技能分析
a.认识穷举法在日常生活中问题解决的应用,并认识到利用计算机用穷举法解决问题的高效。
b.掌握穷举法设计程序的基本思想,并了解穷举法的适用范围及变量定义范围。
c.利用穷举法思想编程设计程序,解决问题,并能对它评论。
2.过程与方法
利用“百钱百鸡”问题的解决过程引导穷举法解决问题的方法与过程,并由此类问题(韩信点兵、水仙花数)引导学生对这一类问题抽象出具体的数学模型,运用穷举法能独立的实现程序。
3.情感态度与价值观
能对生活中穷举类问题利用计算机的高效处理能力形成主动运用编程思想解决,并能动手编写程序,实现问题有解决。
二、教学内容分析
教材选自教科版《算法与程序设计》选修第三章第二节的内容,
本章内容是在前面两章对于编程的基本结构的基础上,对于实际生活中有代表性的某一类问题的具体算法的介绍,在本章第一节介绍了解析法之后,对于实际生活中列举类问题运用解析法不是太合适,所以引入第二种代表性的算法穷举法的介绍。
三、学生分析
高二学生对世界的认识正处于由感性到理性,由具体到抽象的认识,学生应掌握VB编程的基本知识(数据类型、基本结构、输入输出语句),并理解掌握解析法解决问题。
学生对于列举类的问题用解析法来实现学生感到困惑,利用穷举法,因此对此类问题的归纳求解,学生应该掌握。
四、教学重难点
教学重点穷举法设计程序的基本思路,掌握利用穷举法编程解决问题。
教学难点,哪一类问题适合穷举法,穷举的范围以及评价穷举效率的高低。
五、教学方法
归纳推理,任务驱动法
六、教学过程
反思:
穷举法在日常生活中有很多应用实例,如果单靠人脑,花费时间
比较烦琐,因此应学会利用计算机编程实现。
本节内容教材采用的是分组比赛,但程序比较复杂,大部分学生接受可能存在一定的困难,所以采用的是在编程中比较经典的问题。
在教学过程中,特别在确定穷举范围时,要联系前面的知识,另外,穷举法的的优化是本节的重点,要让学生在掌握穷举法的基础上,会对程序进行优化。
(注:所有原程序放在vb文件夹内)
附录:
代码一:
Private Sub Command1_Click()
Dim a, b, c As Integer
Print "公鸡", "母鸡", "小鸡"
For a = 0 To 100
For b = 0 To 100
c = 100 - a - b
If a * 5 + b * 3 + c / 3 = 100 Then
Print a, b, c
End If
Next b
Next a
End Sub
代码二:
Private Sub Command1_Click()
Dim a, b, c As Integer
Print "公鸡", "母鸡", "小鸡"
For a = 0 To 20
For b = 0 To 34
c = 100 - a - b
If a * 5 + b * 3 + c / 3 = 100 Then
Print a, b, c
End If
Next b
Next a End Sub 代码三:
Private Sub Command1_Click() Dim i As Integer For i= 100 To 1000
If i mod 3 =2 and i mod 5 =3 and i mod 7 =3 Then Print "该队官兵数可能为:" & i End If Next i End Sub 代码四:
Private Sub Command1_Click() Dim i As Integer
For i= 100 To 1000
If i mod 21 =2 and i mod 5 =3 Then Print "该队官兵数可能为:" & i End If Next i End Sub 问题
设计程序,找出所有水仙花数。
所谓水仙花数,是指一个3位数,其各位数字的
立方和等于该数字本身。
例如,153是一个水仙花数,因为153 = 13 + 53 +33。
要求将水仙花数三个一行地显示在窗体上,统计出个数,计算平均值。
水仙花数问题。
统计所有水仙花数的数量,并打印。
所谓水仙花数是指满足如下条件的三位数:个位数的立方、十位数的立方和百位数的立方和等于其自身。
例如407为一水仙花数,3
3
3
704407++=。
分析 找出水仙花数需要使用循环,从100循环到999。
数据要求 问题中的常量: 无
问题的输入:
无。
问题的输出:
所有的水仙花数。
设计 初始算法
1 从100循环到999。
判断某个数是否是水仙花数。
算法细化
判断一个三位数是否为水仙花的关键是,求出其个位数、十位数和百位数。
1) 百位数计算:a=i/100,求此数被100整除后的商。
2) 十位数计算:b=i/10-a*10,求此数被100整除后的余数。
3) 个位数计算:c=i%10,求此数被10整除后的余数。
例如,123的各位数字的计算如下: 1) 百位数: 123/100=1;
2) 十位数: 123/10-1*10=2; 3) 个位数: 123%10=3。
接下来判断333c b a ++的结果是否等于i.
流程图
实现
#include "stdio.h"
#include "math.h"
void main()
{
unsigned int a,b,c, i,n;
n=0;
for(i=100;i<1000;i++)
{
a=i/100;
b=i/10-a*10;
c=i%10;
if((a*a*a+b*b*b+c*c*c)==i)
{
printf("%5d",i);
n++;
}
}
}
测试输出所有的水仙花数,此处略。