




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、变量设定:变量设定: s 存放累加和;存放累加和; t 存放每项的值;存放每项的值; i 为循环次数;为循环次数;算法分析:算法分析: 1. 循环累加,用循环累加,用 s=s+t; 或或 s+=t; 2. 每项可递推计算,每项可递推计算, t=t*2; 或或 t*=2; 3. 初值初值 s=1,t=1,循环循环63次。次。例例 1编写求编写求 20+21+22+2 3+263 的程序的程序 。开始s=1,t=1;i=1;i=63t= t*2;s= s+t;i+;输出 s结束真假main( ) int i; float s=1,t=1; for (i=1;i=63;i+) t*=2; s+=t;
2、 printf(“s=%fn”,s);s=s+pow(2,i);#include math.h;算法算法1分析:分析: 设该三位数为设该三位数为 i (100i999),与之对应的,与之对应的个位、十位、百位数字分别为个位、十位、百位数字分别为k1、k2 、k3,则有以下关系:则有以下关系: i=k13+k23+k33 数字分离数字分离: (1) 个位个位: k1=i%10 (2) 十位十位: k2=i/10%10 (3) 百位百位: k3=i/100例例2:打印水仙花数。:打印水仙花数。 如:如:153=13+53+33例例: i=543k1=543%10值为值为3k2=543/10%10值
3、为值为4k3=543/100值为值为5 main( ) int i,k1,k2,k3; for (i=100;i=999;i+) k1=i%10; k2=i/10%10; k3=i/100; if (i=k1*k1*k1+k2*k2*k2+k3*k3*k3) printf(%d=%d3+%d3+%d3n, i,k1,k2,k3); 方法方法1:算法分析算法分析2: 设该三位数的百位、十位、个位设该三位数的百位、十位、个位数字分别为数字分别为k1、k2 、k3, 则有以下关则有以下关系:系: k1*100+k2*10+k3=k13+k23+k33 k1取值取值19, k2 、k3取值取值09 m
4、ain( ) int k1,k2,k3,i; for (k1=1;k1=9;k1+) for (k2=0;k2=9;k2+) for (k3=0;k3=9;k3+) i=k1*100+k2*10+k3; if (i=k1*k1*k1+k2*k2*k2+k3*k3*k3) printf(%d=%d3+%d3+%d3n, i,k1,k2,k3); 方方 法法 2同构数同构数 : 一个数等于它的平方数的右端。一个数等于它的平方数的右端。 如如 :5的平方是的平方是25 25的平方是的平方是625 例例 3:找出找出11000之间的全部同构数之间的全部同构数 。分析:分析:1. 用用i表示表示1100
5、0之间的数之间的数 2. 用用n表示表示i的位数的位数 3. 同构数的条件同构数的条件: i*i%(int)pow(10,n) = = im=i;n=0;do n+; m=m/10; while(m!=0);#include math.hmain( ) int n,m; long i; for(i=1;i0 打印方式:每打印打印方式:每打印10个数,输出一个个数,输出一个n第几次循环s的值m的值132310122720 如如: m=273 s的初值为的初值为0main( ) int i,m,s,k=1; for(i=10;i0); if (s%5=0) printf(%5d,i); if (k
6、%10=0) printf(n);k+; printf(n); 一个数恰好等于它的因子之和,这个数就一个数恰好等于它的因子之和,这个数就称为称为“完数完数”。例如:例如:6的因子为的因子为1,2,3,而,而6=1+2+3,因此,因此6是完数。是完数。编程找出编程找出1000之内的所有完数,并按之内的所有完数,并按下面格式输出其因子下面格式输出其因子6 its factors are 1,2,3 例 5 main( ) int i,j,k; for (i=2;i=1000;i+) k=0; for (j=1;j=i/2;j+) if (i%j=0) k=k+j; if (i=k) printf(
7、“%d its factors are %d”,i,1); for (j=2;j=i/2;j+) if (i%j=0) printf(“,%d”,j); printf(“n”); 程序 : 例例 6 : 简单图案打印简单图案打印 * * * * * * * * * * * * * * * * * * * * * * * * *main( ) int i,j; for (i=1;i=5;i+) for (j=1;j=5;j+) printf ( *); printf(n); * * * * * * * * * * * * * * * * * * * * * * * * *main( ) int
8、i,j; for (i=1;i=5;i+) for (j=1;ji;j+) printf( ); for (j=1;j=5;j+) printf( *); printf(n); (法二)(法二)main( ) int i,j; for (i=1;i=5;i+) for ( j=1;j5+i;j+) if (ji) printf ( “ “); else printf (“ *”); printf(“n”); * * * * * * * * * * * * * * * * * * * * * * * * * * * * *main( ) int i, j; for(i=1;i=5;i+) for
9、 (j=1;j=5-i;j- -) printf( ); for(j=1;j=2*i-1;j+) printf(*); printf(n); 图形图形 3:main( ) int i,j; for (i=1;i=5;i+) for (j=1;j=5-i:j+) printf ( “ “); for (j=1;j=5;j+) printf (“ *”); printf(“n”); * * * * * * * * * * * * * * * * * * * * * * * * *图形图形 4 :main( ) int i,j; for (i=1;i=5;i+) for (j=1;j=i;j+) p
10、rintf (“ *”); printf(“n”); * * * * * * * * * * * * 图形图形 4 :main( ) int i,j; for (i=1;i=5;i+) for (j=1;j=i;j+) printf (“ *”); printf(“n”); * * * * * * * * * * * * 图形图形 5:(法一):(法一)main( ) int i,j; for (i=1;i=5;i+) for (j=1;j=5-i;j+) printf (“ “); for (j=1;j=i;j+) printf (“ *”); printf(“n”); * * * * *
11、* * * * * *图形图形 5:(法二):(法二)main( ) int i,j; for ( i=1;i=5;i+) for ( j=1;j=5;j+) if ( i+j6 ) printf (“ “); else printf (“ *”); printf(“n”); * * * * * * * * * * * 由键盘输入旅客行李重量(由键盘输入旅客行李重量(w),按公式),按公式 : 1.5*w ( w50kg ) 计算运费,要求:计算运费,要求: 1)打印每位旅客的顺序号,行李重量,应付运)打印每位旅客的顺序号,行李重量,应付运费费 ; 2)假定每天最多办理)假定每天最多办理100
12、人的行李托运手续或人的行李托运手续或当当w0时循环结束时循环结束, 下班时打印出全天的运费总收下班时打印出全天的运费总收入和办理的总人数入和办理的总人数 。f =例例 4 计算和统计旅客运费程序计算和统计旅客运费程序 。 1) 输入行李重量输入行李重量(w); 2) 计算运费计算运费(f); 3) 确定顺序号确定顺序号(num); 4) 打印打印 num , w , f; 5) 累加运费收入累加运费收入 total=total + f; 循环计算 6) 打印总收入和办理的总人数。打印总收入和办理的总人数。 算法分析算法分析:main( ) int num=0; float w,f,total=
13、0; scanf(%f ,&w); while (w0&num100 ) if (w=50) f=1.5*w; else f=1.5*50+2.8*(w-50); num+; printf ( %d %6.0f %8.2fn,num,w,f); total+=f; scanf (%f,&w); printf (customers=%d totalincome=%10.2fn,num,total); 方方 法法 1main( ) int num=0; float w,f,total=0; do scanf(%f ,&w); if (w=0) break; if (w=50) f=1.5*w; e
14、lse f=1.5*50+2.8*(w-50); num+; printf ( %d %6.0f %8.2fn,num,w,f); total+=f; while (num0&num=100;num+) if (w=50) f=1.5*w; else f=1.5*50+2.8*(w-50); printf ( %d %6.0f %8.2fn,num,w,f); total+=f; scanf(%f,&w); printf (customers=%d totalincome=%10.2fn,num,total); 方法方法 3例:按下列形式打印乘法九九表例:按下列形式打印乘法九九表 i: 1 1
15、*1=1 2 2*1=2 2*2=4 3 3*1=3 3*2=6 3*3=9 4 4*1=4 4*2=8 4*3=12 4*4=16 9 9*1=9 9*2=18 9*3=27 9*9=81 j 1 2 3 9被乘数被乘数i取值取值19;i每取一值,乘数每取一值,乘数j取值取值1i #include void main( ) int i, j, k; for(i=1; i=9; i+) for(j=1; j32767) break; sum=sum+i; printf(“i=%d, sum=%dn, i, sum); i=256, sum=32640例例:一个猜商品价格的游戏。由系统产生一个一
16、个猜商品价格的游戏。由系统产生一个随机数(随机数(1100),代表某个商品的价格,玩),代表某个商品的价格,玩者通过键盘输入你猜的价格,程序进行判断是者通过键盘输入你猜的价格,程序进行判断是否猜对了,。否猜对了,。若猜对了,则显示若猜对了,则显示“congradulation,the goods belongs to you!”,游戏结束。,游戏结束。若你给的价格高了,显示若你给的价格高了,显示“too high.”,继续,继续猜。猜。否则,显示否则,显示“too low.”,继续猜。,继续猜。#include #include #include void main() int num,n; randomize(); /*为产生随机数做准备为产生随机数做准备*/ num=random(100)+1; /*产生产生1100之间的整数之间的整数*/ pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广播电视台灯光音响师面试题集锦及解析
- 机电知识培训总结
- 课件丑小鸭教学课件
- 2025年高级地籍测量员面试重点题及答案库
- 课件pp客人投诉处理
- 2025年宠物训练师导盲犬笔试题库
- 2025年应急救援岗位面试重点题解析
- 2025年服装设计师创意表现能力测试试题及答案解析
- 2025年妇联招聘笔试冲刺模拟
- 2025年电子商务运营管理师认证考试试题及答案解析
- 揭西招投标管理办法
- 2025年小学语文教师新课程标准考试题目(含答案)
- 社区与小课堂的合同协议
- DG-TJ08-2467-2025 超低能耗建筑设计标准(居住建筑)
- 养老机构风险防范课件
- 腰椎融合术后护理课件
- 新入职员工遵纪守法培训
- 中学新生入学培训
- 肿瘤科中医护理适应技术
- 专题:完形填空(含解析)六年级英语下册期末复习考点培优专项鲁教版(五四学制)(含答案解析)
- 口腔科护士核心职责与操作规范
评论
0/150
提交评论