C语言蓝桥杯,第十一届蓝桥杯c语言b组解析

  C语言蓝桥杯,第十一届蓝桥杯c语言b组解析

  在的第一篇博文中

  你好,我是一只小鸟,欢迎阅读。有什么问题可以和我交流,喜欢我,关注我。

  在进行归纳推理时,如果对某些事件的所有可能情况逐一进行调查,得出一个总的结论,那么这个结论就是可靠的。这种归纳方法叫做枚举法。

  枚举法又称暴力法,是一种基于逐一尝试答案的解题策略。刚开始接触算法的时候,我们练习的基本算法都是关于枚举算法的,比如打印出9 * 9的乘法表,求水仙花的个数,求素数等等。像这样的问题就是在一定范围内寻找符合条件的答案。算法的核心思想是:列举所有可能的年龄猜测问题的描述:美国数学家N维纳(N.Wiener)早熟,11岁上大学。1935年至1936年,他应邀在中国清华大学讲学。有一次,他参加一个重要会议,年轻的面孔引人注目。于是有人问他年龄,他回答:“我年龄的立方是四位数。我的年龄的四次方是一个六位数。这10个数字正好包含从0到9的10个数字,每个数字出现一次。”请计算一下他那时有多年轻。直接提交他当时的年龄数据。

  分析:通过暴力方法,求年龄的大概范围,假设他的年龄是X,103=1000,304=8100,说明X的范围在[10,30]之间。

  int main(){

  for(int I=10;i=30我)

  {

  printf(%d=%.0f %.0f\n ,I,pow(i,3),pow(i,4));//pow是指I的立方和I的四次方。

  }

  返回0;

  }

  网友年龄问题描述:某君认识一个新网友。当被问到年龄时,他的网友说:“我的年龄是两位数,比我儿子大27岁。

  如果把我年龄的两位数换一下,就只是我儿子的年龄了。"

  请计算一下:网民的年龄有多少种可能的情况?

  提示:30岁是可能性之一。

  请填写表示可能情况的物种数量。

  解析:网友年龄比儿子大27岁,说明网友至少27岁,也就是初始值27,两位数最多99,范围是[27,99]。假设网友的年龄是I,a位数字是B,十位数字是10*a,他的年龄数字的交换正好是他儿子的年龄,所以他儿子的年龄是10*b a,判断条件是

  #包含stdio.h

  #包含数学. h

  int main()

  {

  int i,a,b,son,sum=0;

  for(I=27;i 100i ){

  a=I/10;

  b=i;//比如41把10除以4,10得1,就是他儿子14岁。

  son=(b * 10)a;

  if(27==i-son){

  printf(%d\n ,I);

  总和;

  }

  }

  Printf(有%d种可能性\n ,sum);

  返回0;

  }

  30

  41

  五十二个

  63

  74

  八十五

  96

  生日的数目有7种可能。描述:某君从某年开始每年都要举办生日聚会,每次都要吹灭同岁的蜡烛数。现在,他已经吹灭了236支蜡烛。

  请问,他几岁开始过生日?

  请输入他开始生日聚会的年龄。

  注意:你的输出应该是整数,不要输出任何多余的内容或说明文字。

  投入

  没有输入。

  输出

  输出一个整数,即某君开始生日聚会的年龄数。

  给个提示

  用printf或cout输出答案。

  解析:假设I是初龄,J是终龄,J一定大于I,那么J=I 1,K是多少根蜡烛!暴力累积。

  int main()

  {

  for(int I=1;i=100我)

  {

  for(int j=I 1;j=100j)

  {

  int sum=0;

  for(int k=I;k=j;k ){

  sum=k;

  }

  if(sum==236)

  printf(%d ,I);

  }

  }

  返回0;

  }

  数学问题描述:有限的五位数

  一位数为6且能被3整除的五位数有多少个?

  分析:首先分析5位数的范围[10000,9999],6的个位数表示至少两位数,取3的余数,累加ans。

  #包含stdio.h

  #包含stdlib.h

  int main() {

  int ans=0;

  for(int I=10000;i=99999i ){

  if((I * 10 ^ 6)% 3==0){

  ans

  }

  }

  Printf(有%d个可被3整除,ans);

  返回0;

  }

  小明,一个粗心的公式,是个急性子。他上小学的时候,经常把老师写在黑板上的题抄错。有一次,老师给题:36 x 495=?但是他抄了:396 x 45=?但结果很戏剧性,他的答案是对的!因为36 * 495=396 * 45=1782可能有很多相似的巧合,比如:27* 594=297 * 54。

  假设a b c d e表示从1到9的五个不同的数(注意是不同的数,不包含0)

  有几个公式可以满足形式ab * cde=adb* ce?请利用计算机的优势,找出所有的可能性,并回答不同公式的类型数。

  满足乘换定律的公式算作不同种类,所以答案一定是偶数。

  答案直接通过浏览器提交。注:只提交一个表示最终统计类别的数字,不要提交求解过程或其他多余的内容。

  解析:假设a b c d e用1到9不同的数字表示五个数,a b c d e的取值范围为[1,9]。ans累计法累计多少个结果?通过判断条件ab*cde=adb*ce满足条件,累加1,然后有A和B相等的可能,所以判断A不等于B,其他字母也一样。

  #包含stdio.h

  int main(){

  int ans=0,m,n;

  for(int a=1;a=9;a ){

  for(int b=1;b=9;b ){

  for(int c=1;c=9;c ){

  for(int d=1;d=9;d ){

  for(int e=1;e=9;e ){

  m=(a * 10 b)*(c * 100d * 10 e);

  n=(a * 100d * 10 b)*(c * 10 e);

  if(m==n a!=b a!=c a!=d a!=e b!=c b!=d b!=e c!=d c!=e d!=e){

  ans

  }

  }

  }

  }

  }

  }

  Printf(共%d ,ans);

  返回0;

  }

  奇怪的分数问题描述:

  小学的时候,小明经常自己发明新的算法。有一次,老师的问题是:1/4乘以8/5。小明其实是把分子拼接在一起,分母拼接在一起。答案是:18/45。老师刚想批评他,可转念一想,这个答案正好对。真见鬼!

  还有哪些公式可以用来计算1到9的个位数的分子和分母?请写出所有不同公式的编号(包括问题中的例子)。

  很明显,把分子和分母交换后,比如4/1乘以5/8就可以满足要求,可以算作不同的公式。

  但是对于同样的分子和分母,2/2乘以3/3的类型太多了,数不过来!

  注意:答案是整数(考虑到对称性,必须是偶数)。

  请通过浏览器提交。不要写多余的内容。

  其实和上一个差不多。找出范围、判断条件和不符合条件,并使用累积ans。

  * *注意不能用(a/b)\ *(c/d)==((a \ * 10c)/b \ * 10d))* *,要用数学中的十字乘法。

  #包含stdio.h

  int main(){

  int ans=0;

  for(int a=1;a=9;a ){

  for(int b=1;b=9;b ){

  for(int c=1;c=9;c ){

  for(int d=1;d=9;d ){

  如果(a==b c==d)

  继续;

  int e=a*10 c,f=b * 10d;

  if(a*c*f==b*d*e){

  ans

  }

  }

  }

  }

  }

  printf(%d ,ans);

  返回0;

  }

  几何蓝有一个超大的仓库,可以装很多货。现在,小兰有N箱货物要放在仓库里,每箱货物都是一个正立方体。蓝色表示相互垂直的三个方向:长、宽、高。每箱货物的侧面必须严格平行于长度、宽度和高度。小蓝希望所有的货物最后都能放进一个大立方体里。即L、W、H的货物分别按长、宽、高方向堆放,满足N=L W H的要求,给定N,有多少种堆放方案能满足要求?

  比如当n=4时,有6种方案:1 1 4,1 2 2,1 4 1,2 1 2,2 2 1,4 1 1。

  请问当n=2021041820210418(注意是16位)时,总共有几个方案?

  提示:建议用电脑编程解决问题。

  解析:循环暴力枚举的解决方案理论上是可能的,但不可行。换个思路把整数的所有原因(近似值)分解,然后把所有因子暴力的双循环都枚举出来算结果。

  #包含stdio.h

  int judge(龙龙a,龙龙b,龙龙c)

  {

  If(a==b==c)//对于长度、宽度和高度的相同排列,只有一种组合

  返回1;

  if(a==b a!=ca==c a!=bb==c a!=b) //长宽高任意两个相同的排列只有3种。

  返回3;

  其他

  返回6;//长宽高都不一样。只有6种排列

  }

  int mian()

  {

  龙龙n=2021041820210418

  long long L,W,H;

  long long ans=0;

  for(L=1;L * L * L=n;L) //l是最小的一方。

  {

  If(n%L==0)//小优化

  {

  for(W=L;l * W * W=n;W )//l是第二大党,次数多。

  {

  If(n%(L*W)==0)//小优化

  {

  h=n/L/W;

  if(H=W){

  ans=judge(L,W,H);

  }

  }

  }

  }

  }

  printf(%d ,ans);

  }

  ,转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: