0
点赞
收藏
分享

微信扫一扫

蓝桥杯练习------基础练习

DT_M 2022-03-13 阅读 81

一、基础练习  数列排序 

陌生知识点:sort函数,数组用法,sort(a,a+n)

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	scanf("%d",&n);
	int a[n];
	for(int i=0;i<n;i++)
	{
		scanf("%d",&a[i]); 
	}
	sort(a,a+n);  // 排序函数 
	for(int i=0;i<n;i++)
	   printf("%d ",a[i]);
	return 0;
 } 

二、基础练习  时间转换

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int t,h,m,s;
	scanf("%d",&t);
	h=t/3600;
	m=t%3600/60;
	s=t%3600%60;
	 printf("%d:%d:%d",h,m,s);
	return 0;
 }

三、基础练习  字符串对比

陌生知识点:

(1)compare函数

(2)tolower函数

(toupper函数用法相似,不过,是把小写字母转换成大写字母)

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s1,s2;
	cin>>s1>>s2;
	int len1=s1.length();
	int len2=s2.length();
	if(len1!=len2) 
	{
		printf("1");
		return 0;
	}
	int ret=s1.compare(s2);  //比较字符串函数,相同则为0
	if(ret==0)
	{
		printf("2");
		return 0;
	}
	int flag=1;
	for(int i=0;i<len1;i++)
	{
		s1[i]=tolower(s1[i]);   // 字符的小写形式,大写形式为函数toupper
		s2[i]=tolower(s2[i]);
		if(s1[i]!=s2[i])
		{
			flag=0;
			break;
		}
	}
	if(flag==1) printf("3");
	if(flag==0) printf("4");
	
	return 0;
 }

四、基础练习  分解质因数

 陌生知识点:

(1)sqrt函数

(2)vector容器

(3)  bool函数

#include<bits/stdc++.h>
using namespace std;

bool isprime(int n)
{
	int m=sqrt(n);
	for(int i=2;i<=m;i++)
	{
		if(n%i==0)
		  return false;
	}
	return true;
}

int main()
{
	int a,b,temp;
	vector<int> prime;
	scanf("%d%d",&a,&b);
	for(int i=2;i<=b;i++) //找出到从2到b的所有素数,构建素数表 
	{
		if(isprime(i))
		{
			prime.push_back(i);
		}
	}
	for(int i=a;i<=b;i++)  //求区间[a,b]中所有整数的质因数分解
	{
		temp=i;
	    printf("%d=",i);
		for(int j=0;j<prime.size();) //利用素数表,找出每个整数的质因数 
	    {
			if(temp%prime[j]==0)  
			{
				temp/=prime[j];          //如果该数是素数,则temp变为1 ,
				printf("%d",prime[j]);     //或者如果只剩最小的因数了,temp也变为1 
				if(temp!=1) printf("*");   //为了判断 * 是否输出
			}
			else  
			{
				j++;
			}
		}
		printf("\n");
	}
	return 0;
}

五、基础练习 矩阵乘法

 做题思路:  代码来自  矩阵知识

完整代码: 

#include<bits/stdc++.h>
using namespace std;

int main()
{
	int a[35][35];
	int b[35][35];
	int t[35][35];
	int n,m;
	scanf("%d%d",&n,&m);
	int i,j,k;
	for(i=0;i<n;i++)//1.输入矩阵,并给b矩阵赋相同的值 
	{
		for(j=0;j<n;j++)
		{
			scanf("%d",&a[i][j]);
			b[i][j]=a[i][j];
		}
	}
	if(m==0)//2.分情况讨论 (1)当求矩阵的0次幂,即m=0时 
	{
		for(i=0;i<n;i++)//矩阵的0次幂为单元矩阵 
		{
			for(j=0;j<n;j++)
			{
				if(i==j)  printf("1 ");
				else  printf("0 ");
			}
			printf("\n");
		}
		return 0;
	}
	if(m==1) //2.(2)当求矩阵的1次幂,即m=1时 
	{
		for(i=0;i<n;i++) //矩阵的1次幂为它本身 
		{
			for(j=0;j<n;j++)
			{
				printf("%d",a[i][j]);
			}
			printf("\n");
		}
		return 0;
	}
	while(m>=2)//2.(3) 当求矩阵的m>=2次幂时 
	{
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				int k=n;
				while(k)
				{
					//t的每一行的每一列等于a的每一行的每一列乘以b的每一列的每一行之和 
					t[i][j]+=b[i][k-1]*a[k-1][j];
					k--;
					
				}
			}
		}
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				b[i][j]=t[i][j];//把t矩阵赋值给b矩阵 
				t[i][j]=0;//并初始化t矩阵 
			}
		}
		m--;
	}
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("%d ",b[i][j]);
		}
		printf("\n");
	}
	return 0;
 }

六、基础练习  矩形面积交

 知识点:swap,交换函数;sort,排序函数

#include<bits/stdc++.h>
using namespace std;

int main()
{
	double x1,y1,x2,y2,x3,y3,x4,y4;
	scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);
	if(x1>x2)  swap(x1,x2);    //交换函数
	if(y1>y2)  swap(y1,y2);
	if(x3>x4)  swap(x3,x4);
	if(y3>y4)  swap(y3,y4);
	double a[4]={x1,x2,x3,x4};
	double b[4]={y1,y2,y3,y4};
	sort(a,a+4);      //排序函数
	sort(b,b+4);
	double s=(a[2]-a[1])*(b[2]-b[1]);
	printf("%.2lf",s);
	return 0;
}

 

举报

相关推荐

0 条评论