蓝桥杯 题库 简单 每日十题 day7-LMLPHP

01 啤酒和饮料

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐酒。

#include <stdio.h>
#include <stdlib.h>
int main()
{
 int i,j;
 for(i=1;i<=40;i++){
   for(j=1;j<=50;j++){
     if(i*2.3+j*1.9==82.3&&i<j){
       printf("%d",i);
     }
   }
 }
 return 0;
}

02 武功秘籍

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。小明只想练习该书的第81页到第92页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走?

#include <stdio.h>
#include <stdlib.h>
int main()
{
  int s,i;
  s=0;
  for(i=81;i<=92;i++){
    if(i%2==0)
      s++;
  }
  printf("%d",s+1);
  return 0;
}

03 序列个数

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
请问有多少个序列满足下面的条件:
1.序列的长度为5。
2.序列中的每个数都是1到10之间的整数。
3.序列中后面的数大于等于前面的数。

#include <stdio.h>
#include <stdlib.h>
int main()
{
  int a,b,c,d,e,ans=0;
  for(a=1;a<11;a++)
    for(b=a;b<11;b++)
      for(c=b;c<11;c++)
        for(d=c;d<11;d++)
          for(e=d;e<11;e++)
            ans++;
  printf("%d",ans);
  return 0;
}

04 双阶乘

蓝桥杯 题库 简单 每日十题 day7-LMLPHP

#include <stdio.h>
#include <stdlib.h>
int main()
{
  int i;
  int n=2021;
  int sum=1;
  for(i=1;i<=2021;i++)
  {
    if(i%2)//是奇数
    {
      sum*=i;
      sum%=100000;
    }
  }
  printf("%d",sum);
  return 0;
}

05 利息计算

题目描述
小李年初在银行存款1千元(一年定期)。他计划每年年底取出100元救助失学儿童。
假设银行的存款利率不变,年利率为3%,年底利息自动计入本金。
下面的代码计算5年后,该账户上有多少存款。
试填写缺失的代码。
源代码
C

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
    double money = 1000;
    int n = 5;
    int i;
    for(i=0; i<n; i++)
    {
        money = _______________;
        money -= 100; 
    }
    printf("%.2f\n", money);

    return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
    double money = 1000;
    int n = 5;
    int i;
    for(i=0; i<n; i++)
    {
        money = money*(1+0.03);
        money -= 100; 
    }
    printf("%.2f\n", money);

    return 0;
}

06 大写

题目描述
给定一个只包含大写字母和小写字母的字符串,请将其中所有的小写字母转换成大写字母后将字符串输出。
输入描述
输入一行包含一个字符串。
输出描述
输出转换成大写后的字符串。
输入输出样例
示例
输入

LanQiao

输出

LANQIAO

解析
任意一个大写字母与其对应的小写字母之间的ASCIl码值的差值是一个固定值。

#include<stdio.h>
#include<string.h>
int main(){
    int i,len;
    char a[256];
    gets(a);//gets(a) 表示输入一个字符串到数组a,
    //a表示读取一个字符串存入a中,字符串输入结束标志为换行符。
    len=strlen(a);
    for(i=0;i<len;i++){
        if(a[i]>='a'&&a[i]<='z'){
            a[i]-=32;
        }
    }
    for(i=0;i<len;i++)
        printf("%c",a[i]);
}

07 移动

问题描述
小蓝有一个机器人,初始时在坐标(0,0)。
小蓝可以给机器人发送指令,指令如下:
1.指令U,如果当前机器人在(x,y),执行后机器人在(x一1,y);2.指令D,如果当前机器人在(x,y),执行后机器人在(x+1,y);3.指令L,如果当前机器人在(x,y),执行后机器
人在(x,y-1);4.指令R,如果当前机器人在(x,y),执行
后机器人在(x,y+1)。
给定指令序列,请问指令全部执行后,机器人在哪个位置?
输入格式
输入一行包含一个字符串,表示指令序列,字符串中只包含
U,D,L,R四种字符。
输出格式
输出一行包含两个整数,相邻的整数之间使用一个空格分隔,分别表
示机器人的两个坐标值。
样例输入

DDDRRLR
#include <stdio.h>
#include<string.h>
int main()
{
  int x=0,y=0,i;
  char n[100];
  scanf("%s",n);
  for(i=0;i<strlen(n);i++){
    if(n[i]=='U')
     x--;
    if(n[i]=='D')
     x++;
    if(n[i]=='L')
      y--;
    if(n[i]=='R')
      y++;
  }
  printf("%d %d",x,y);
}

08 算式900

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明的作业本上有道思考题:
看下面的算式:
蓝桥杯 题库 简单 每日十题 day7-LMLPHP

小明经过几天的努力,终于做出了答案!如下:

(5012-4987)*36=900

用计算机搜索后,发现还有另外一个解,本题的任务就是:请你算出这另外的一个解。
注意:输出格式需要与示例严格一致;括号及运算符号不要用中文输入法;整个算式中不能包含空格。

#include <iostream>
using namespace std;
int main()
{
  /*
  int a,b,c,d,x,y,z,w,m,n;
  for(a=6;a<10;a++){
    for(b=0;b<10;b++){
      for(c=0;c<10;c++){
        for(d=0;d<10;d++){
          for(x=1;x<10;x++){
            for(y=0;y<10;y++){
              for(z=0;z<10;z++){
                for(w=0;w<10;w++){
                  for(m=1;m<10;m++){
                    for(n=0;n<10;n++){
                      if(a!=b && a!=c && a!=d && a!=x && a!=y && a!=z && a!=w && a!=m && a!=n 
                      && b!=c && b!=d && b!=x && b!=y && b!=z && b!=w && b!=m && b!=n 
                      && c!=d && c!=x && c!=y && c!=z && c!=w && c!=m && c!=n 
                      && d!=x && d!=y && d!=z && d!=w && d!=m && d!=n 
                      && x!=y && x!=z && x!=w && x!=m && x!=n 
                      && y!=z && y!=w && y!=m && y!=n 
                      && z!=w && z!=m && z!=n 
                      && w!=m && w!=n 
                      && m!=n){
                        if((a*1000+b*100+c*10+d-(x*1000+y*100+z*10+w))*(m*10+n)==900) {
                          cout <<'('<<a<<b<<c<<d<<'-'<<x<<y<<z<<w<<')'<<"*"<<m<<n<<"="<<"900";
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  */
   cout <<'('<<"6048"<<'-'<<"5973"<<')'<<"*"<<"12"<<"="<<"900";
  return 0;
}

09 斐波那契数列最大公约数

题目描述
斐波那契数列满足F1=F2=1,从F3开始有Fn=Fn-1+Fn-2。
请你计算GCD(F2020,F520),其中GCD(A,B)表示A和B的最大公约数。
解析
斐波那契数列最大公约数定理:gcd(Fn,Fm)=F(gcd(n,m))

#include <stdio.h>
int GCD(int a, int b)
{
	if (a % b != 0) return GCD(b, a % b);
	else return b;
}
int fib(int n) {
	int i, s1, s2;
	if (n < 1)
		return -1;
	if (n == 1 || n == 2)
		return 1;
	s1 = 1;
	s2 = 1;
	for (i = 3; i <= n; i++) {
		s2 = s1 + s2; //辗转相加法
		s1 = s2 - s1; //记录前一项
	}
	return s2;
}
int main()
{
	printf("%d", fib(GCD(2020, 520)));
	return 0;
}

10 最大距离

蓝桥杯 题库 简单 每日十题 day7-LMLPHP
输出描述
输出一行包含一个整数,表示答案。
输入输出样例
示例
输入

5
94247

输出

9
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
  int i,j,n1,n[1000],sum=0,max=-1;
  scanf("%d",&n1);
  for(i=0;i<n1;i++)
  {
    scanf("%d",&n[i]);
  }
  for(i=0;i<n1-1;i++)
  {
    for(j=i+1;j<n1;j++)
    {
      sum=abs(i-j)+abs(n[i]-n[j]);
      if(sum>max)max=sum;
    }
  }
  printf("%d",max);
  return 0;
}
09-22 19:41