!需要二次训练
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. 闰年年判断
问题描述
给定⼀一个年年份,判断这⼀一年年是不不是闰年年。
当以下情况之⼀一满⾜足时,这⼀一年年是闰年年:
- 年年份是4的倍数⽽而不不是100的倍数;
- 年年份是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;
}