《蓝桥杯基本算法》PPT课件.ppt_第1页
《蓝桥杯基本算法》PPT课件.ppt_第2页
《蓝桥杯基本算法》PPT课件.ppt_第3页
《蓝桥杯基本算法》PPT课件.ppt_第4页
《蓝桥杯基本算法》PPT课件.ppt_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、蓝桥杯基础算法,基础算法,图形显示 排序 前缀表达式 分糖果 回文数字,问题描述 编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数): * * * * * * * * * * * * * * *,图形显示ALGO-101,C程序:,图形显示ALGO-101,#include stdio.h int main() int x,i,j; scanf(%d, ,排序ALGO-97,问题描述 编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列。输入格式:输入只有一行,即三个整数,中间用空格隔开。输出格式:输出只有一行,即排序后的结果。输入输出样例,样例

2、输入 9 2 30,样例输出 30 9 2,排序ALGO-97,C程序:,#include stdio.h int main() int x,y,z,tem; scanf(%d%d%d, ,if(xz) tem=x; x=z; z=tem; if(yz) tem=y;y=z; z=tem; printf(%d %d %dn,x,y,z); return 0; ,前缀表达式ALGO-92,问题描述 编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。输入格式为:“运算符 对象1 对象2”,其中,运算符为“+”(加法)、“-”(减法)、“*”(乘法)或“/”(除法),运算对象为不超过10

3、的整数,它们之间用一个空格隔开。要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。输入格式:输入只有一行,即一个前缀表达式字符串。输出格式:输出相应的计算结果(如果是除法,直接采用c语言的“/”运算符,结果为整数)。,样例输入 + 5 2,样例输出 7,前缀表达式ALGO-92,C程序:,#include stdio.h add(int x,int y) return(x+y); sub(int x,int y) return(x-y); mul(int x,int y) return(x*y); div(int x,int y) return(x/y);,int main() c

4、har A9,op; int x,y,result; gets(A); op=A0; if(A2=1,switch(op) case +:result=add(x,y);break; case -:result=sub(x,y);break; case *:result=mul(x,y);break; case /: if(y=0) exit(0); result=div(x,y); break; printf(%d,result); return 0; ,分糖果PREV-32,问题描述 有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都把自己的糖果分一

5、半给左手边的孩子。一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。反复进行这个游戏,直到所有小朋友的糖果数都相同为止。你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。 输入格式 首先读入一个整数N(2N100),表示小朋友的人数。接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2) 输出格式 要求程序输出一个整数,表示老师需要补发的糖果数。,样例输入 32 2 4,样例输出 4,分析:,利用数组存放每个小朋友的糖果数,用循环模拟糖果变化过程。 解步骤如下: 执行以下步骤直到数组各元素相等。 1.对数组中每个元素Ai=Ai-Ai/2+Ai+1/2,

6、 2.若Ai不是偶数则Ai+, 3. 表示补发糖果数的count+.,分糖果PREV-32,C程序:,#includestdio.h #includestdlib.h #define MAX 100 int main() int AMAX; int flag=1,count=0; int n,i,temp; scanf(%d,分糖果PREV-32,while(flag) flag=0; temp=A0/2; for(i=0;in-1;i+) Ai=Ai-Ai/2+Ai+1/2; if(Ai%2!=0) count+; Ai+; ,An-1=An-1-An-1/2+temp; if(An-1%2

7、!=0) count+; An-1+; for(i=0;in-1;i+) if(Ai!=Ai+1) flag=1; break; printf(%dn,count); return 0; ,回文数字PREV-21,问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。本题要求你找到一些5位或6位的十进制数字。满足如下要求:该数字的各个数位之和等于输入的整数。 输入格式 一个正整数 n (10n100), 表示要求满足的数位和。 输出格式 若干行,每行包含一个满足要求的5位或6位整数。数字按从小到大的顺序排列。如果没有满足条件的,输出:-1,样例输入 44,样例输出 99899499994589985994499,样例输入 60,样例输出 -1,分析:,解题步骤如下: 对于每一个5或6位数字i执行以下步骤 1.逆序分解出每位数字, 2.顺序组合成新的5或6位数字m 3.判断若各位数字和为已知量,且m= =i,则输出 若不存在满足要求的数字则输出-1.,回文数字PREV-21,C程序:,#include stdio.h i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论