蓝桥杯--1

!需要二次训练

BEGIN-1. A+B问题


输⼊入A、B,输出A+B
输⼊入格式
输⼊入的第⼀一⾏行行包括两个整数,由空格分隔,分别表示A、B。
输出格式
输出⼀一⾏行行,包括⼀一个整数,表示A+B的值。

#include<iostream>

using namespace std;

 int main(){
 	int A,B;
 	cin>>A>>B;
 	cout<<A+B;
 	return 0;
 }

BEGIN-2. 序列列求和


问题描述
求1+2+3+…+n的值。
输⼊入格式
输⼊入包括⼀一个整数n。
输出格式
输出⼀一⾏行行,包括⼀一个整数,表示1+2+3+…+n的值。

#include<iostream>
#include<stdio.h>

using namespace std;

int main(){
	int sum=0;
	int n;
	cin>>n;
	if(n==1)
	sum=1;
	else
	{
		sum=(1+n)*n/2;	
	}
	cout<<sum;
	return 0;
}

!注意!
如果你使⽤用C++或C语⾔言⽽而且准备使⽤用printf输出结果,则你的格式字符串串应该写成%I64d以输出long
long类型的整数。

四舍五⼊入保留留⼩小数点后7位,表示圆的⾯面积。

printf("%.7lf",s);

BASIC-1. 闰年年判断


问题描述
给定⼀一个年年份,判断这⼀一年年是不不是闰年年。
当以下情况之⼀一满⾜足时,这⼀一年年是闰年年:

  1. 年年份是4的倍数⽽而不不是100的倍数;
  2. 年年份是400的倍数。
    其他的年年份都不不是闰年年。
    输⼊入格式
    输⼊入包含⼀一个整数y,表示当前的年年份。
    输出格式
    输出⼀一⾏行行,如果给定的年年份是闰年年,则输出yes,否则输出no。
#include<iostream>
#include<cstdio>

using namespace std;

int ifrun(int year)
{
	if(year%4==0&&year%100!=0)
	 printf("yes");
	else if(year%400==0)
		printf("yes");
	else printf("no"); 
 } 

int main(){
	int year;
	cin>>year;
	ifrun(year);
}

BASIC-2. 01字串串


问题描述
对于⻓长度为5位的⼀一个01串串,每⼀一位都可能是0或1,⼀一共有32种可能。它们的前⼏几个是:
00000
00001
00010
00011
00100
请按从⼩小到⼤大的顺序输出这32种01串串。
输⼊入格式
本试题没有输⼊入。
输出格式
输出32⾏行行,按从⼩小到⼤大的顺序每⾏行行⼀一个⻓长度为5的01串串。
样例例输出
00000
00001
00010
00011

#include<iostream>
#include<cstdio>

using namespace std;

int main(){
	for(int i=0;i<=1;i++)
		for(int j=0;j<=1;j++)
			for(int k=0;k<=1;k++)
				for(int t=0;t<=1;t++)
					for(int r=0;r<=1;r++)
						cout<<i<<j<<k<<t<<r<<endl; 
}

BASIC-3. 字⺟母图形 !


问题描述
利利⽤用字⺟母可以组成⼀一些美丽的图形,下⾯面给出了了⼀一个例例⼦子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是⼀一个5⾏行行7列列的图形,请找出这个图形的规律律,并输出⼀一个n⾏行行m列列的图形。
输⼊入格式
输⼊入⼀一⾏行行,包含两个整数n和m,分别表示你要输出的图形的⾏行行数的列列数。
输出格式
输出n⾏行行,每个m个字符,为你的图形。
样例例输⼊入
5 7
样例例输出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC

!注意!找规律
在这里插入图片描述

#include<iostream>
#include<cstdio>

using namespace std;

int main(){
	
	int n,m;
	cin>>n>>m;
	for(int i=0;i<n;i++)
		{
			for(int j=0;j<m;j++)
				cout<<char('A'+abs(i-j));
			cout<<endl;
			
		}
		
	return 0;
}

BASIC-4. 数列列特征


问题描述
给出n个数,找出这n个数的最⼤大值,最⼩小值,和。
输⼊入格式
第⼀一⾏行行为整数n,表示数的个数。
第⼆二⾏行行有n个数,为给定的n个数,每个数的绝对值都⼩小于10000。
输出格式
输出三⾏行行,每⾏行行⼀一个整数。第⼀一⾏行行表示这些数中的最⼤大值,第⼆二⾏行行表示这些数中的最⼩小值,第三⾏行行表
示这些数的和。

#include<iostream>
#include<cstdio>

using namespace std;

int main(){
	int n;
	cin>>n;
	int j[n];
	for(int i=0;i<n;i++)
	{
		cin>>j[i];
		
	}
	int max=j[0],min=j[0],sum=0;
	for(int i=0;i<n;i++)
	{
		if(j[i]>max)
			max=j[i];
		if(j[i]<min)
			min=j[i];
		sum+=j[i];
	}
	cout<<max<<endl<<min<<endl<<sum;
	return 0;
}

BASIC-5. 查找整数

问题描述
给出⼀一个包含n个整数的数列列,问整数a在数列列中的第⼀一次出现是第⼏几个。
输⼊入格式
第⼀一⾏行行包含⼀一个整数n。
第⼆二⾏行行包含n个⾮非负整数,为给定的数列列,数列列中的每个数都不不⼤大于10000。
第三⾏行行包含⼀一个整数a,为待查找的数。
输出格式
如果a在数列列中出现了了,输出它第⼀一次出现的位置(位置从1开始编号),否则输出-1。

#include<iostream>
#include<cstdio>

using namespace std;

int main(){
	int n,a,flag=true;
	cin>>n;
	int j[n];
	for(int i=1;i<=n;i++)
	{
		cin>>j[i];
	}
	cin>>a;
	for(int i=1;i<=n;i++)
	{
		if(j[i]==a&&flag)
		{
			cout<<i;
			flag=false;
		}
			
	}
	if(flag)
	cout<<-1;
}

大佬方法:

#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++)
cin >> a[i];
int t;
cin >> t;
int i;
for (i = 0; i < n; i++)
if (t == a[i]) break;
if (i == n)
cout << "-1";
else
cout << i + 1;
return 0;
}

BASIC-6. 杨辉三⻆角形


问题描述
杨辉三⻆角形⼜又称Pascal三⻆角形,它的第i+1⾏行行是(a+b)i的展开式的系数。
它的⼀一个重要性质是:三⻆角形中的每个数字等于它两肩上的数字相加。
下⾯面给出了了杨辉三⻆角形的前4⾏行行:
1 
1 1 
1 2 1
1 3 3 1
给出n,输出它的前n⾏行行。
输⼊入格式
输⼊入包含⼀一个数n。
输出格式
输出杨辉三⻆角形的前n⾏行行。每⼀一⾏行行从这⼀一⾏行行的第⼀一个数开始依次输出,中间使⽤用⼀一个空格分隔。请不不
要在前⾯面输出多余的空格。

#include<iostream>
#include<cstdio>

using namespace std;

int main(){
	int n;
	cin>>n;
	int k[n][n];
	
	for(int i=0;i<n;i++)
	{
		k[i][0]=k[i][i]=1;
		for(int j=1;j<i;j++){
			
				
			k[i][j]=k[i-1][j-1]+k[i-1][j];
				
			}
		
	}
	
	
	//print
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<=i;j++)
		{
			cout<<k[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}

BASIC-7. 特殊的数字


问题描述
  153是⼀一个⾮非常特殊的数,它等于它的每位数字的⽴立⽅方和,即153=1 11+5 55+3 33。编程
求所有满⾜足这种条件的三位⼗十进制数。
输出格式
  按从⼩小到⼤大的顺序输出满⾜足条件的三位⼗十进制数,每个数占⼀一⾏行行。

#include<iostream>
#include<cstdio>

using namespace std;

int main(){
	int s;
	for(int i=1;i<=9;i++)
		for(int j=0;j<=9;j++)
			for(int t=0;t<=9;t++)
			{
				s=i*100+j*10+t;
				if(s==i*i*i+j*j*j+t*t*t)
					cout<<s<<endl;
					
			}
			return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值