蓝桥杯练习题

蓝桥杯练习题

1.问题描述
判断给定的三位数是否水仙花数。所谓水仙花数是指其值等于它本身每位数字立方和的数。例153就是一个水仙花数。153=13+53+33

#include<stdio.h>
int main () {
  int a,b,c,d;
  scanf("%d",&a);
  b=a/100;
  c=a/10%10;
  d=a%10;
  if((b*b*b+c*c*c+d*d*d)==a){
     printf("YES");
  }
  else{
   printf("NO");
  }
  //写你的代码
  return 0;
}

2.问题描述
求出区间[a,b]中所有整数的质因数分解。‘
输出:
3=3
4=22
5=5
6=2
3
7=7
8=222
9=33
10=2
5

#include <stdio.h>
#include <stdlib.h>


int main() 
{
	int a,b,n,i,j;
	scanf("%d %d",&a,&b);	

	for(a;a<=b;a++)	
	{
		printf("%d=",a);
		n=a;
		j=2;
		while(n!=j)	
		{
			for(j=2;j<n;j++)	
			{
				if(n%j==0 && n!=j)	
				{
					printf("%d*",j);
					n/=j;
					break;
				}
			}	
		}
		printf("%d\n",n);
	}
	return 0;		
}

3.问题描述
给定一个以秒为单位的时间t,要求用’“的格式来表示这个时间。<表示时间, <>表示分钟,而表示秒,它们都是整数且没有前导的“O”。例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。

#include<stdio.h>
int main () {
  int t,H,M,S;
  scanf("%d",&t);
  H=t/3600;
  M=t%3600/60;
  S=t%3600%60;
  printf("%d",H);
  printf(":");
  printf("%d",M);
  printf(":");
 printf("%d",S);
  //写你的代码
  return 0;
}

4.问题描述
给定一个年份,判断这一年是不是闰年。
当以下情况之一满足时,这一年是闰年:
1.年份是4的倍数而不是100的倍数;
2.年份是400的倍数。
其他的年份都不是闰年。

#include <stdio.h>
int main()
{
	int year;
	scanf("%d",&year);
	if (year%400 == 0 || year%4 == 0 && year%100 != 0){
		printf("yes");
    }
	else{
		printf("no");
    }
	return 0;
}

5.问题描述
  给定某整数数组和某一整数b。要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序。如果数组元素数值在A到Z的ASCII之间,替换为对应字母。元素个数不超过100,b在1至100之间。
输入格式
  第一行为数组元素个数和整数b
  第二行为数组各个元素
输出格式
  按照要求输出
样例输入
7 2
77 11 66 22 44 33 55

样例输出

11 33 55 M

#include <iostream>
#include<algorithm>
using namespace std;
int main()
{
    int n,b,i,k;
    int num[101];
    char ch;
    cin>>n>>b;
    for(i=0;i<n;i++)
    {
        cin>>num[i];
    }
    sort(num,num+n);
    for(i=0;i<n;i++)
    {
        if(num[i]%b==0)
        {
            for(k=i;k<n-1;k++)
            {
                num[k]=num[k+1];
            }
            n--;
            i--;
        }
    }
    for(i=0;i<n;i++)
    {
        if(num[i]>='A'&&num[i]<='Z')
        {
            ch=num[i]-65+'A';
            cout<<ch<<" ";
        }
        else
            cout<<num[i]<<" ";
    }
    cout<<endl;
    return 0;
}

6.问题描述
  给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:
  1:两个字符串长度不等。比如 Beijing 和 Hebei
  2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing
  3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing
  4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing
  编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。

输入格式
  包括两行,每行都是一个字符串

输出格式
  仅有一个数字,表明这两个字符串的关系编号

样例输入
BEIjing
beijing
样例输出
3

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
char s1[20],s2[20];
int main()
{
    while(~scanf("%s %s",s1,s2))
    {
        int flag=0;
        int l1=strlen(s1);
        int l2=strlen(s2);
        if(l1!=l2)
            printf("1\n");
        else//strupr 把小写变成大写 strlwr 把大写变成小写
        {
            if(strcmp(s1,s2)==0)
                printf("2\n");
            else
            {
                //printf("%s %s>>>>\n",strupr(s1),strupr(s2));
                if(strcmp(strupr(s1),strupr(s2))==0)
                    printf("3\n");
                else
                    printf("4\n");
            }
        }
    }
    return 0;
}

好了,今天的分享就到这里了。点个赞吧
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code袁

你的支持是我莫大的幸运

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值