1题
画出矩形(必须用函数,函数原型为:void printRectangle(int a, int b, char s, int c);)
描述
根据参数,画出矩形。
输入
输入一行,包括四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。
输出
输出画出的图形。
样例输入
7 4 @ 0
样例输出
@@@@
@ @
@ @
@ @
@ @
@ @
@@@@
2题
附着墙而立的字母三角形(必须用函数,函数原型为:void printTriangle(int n);)
描述
输入一个正整数(≤26),编程输出以这个正整数为边长的附着墙而立的字母三角形。
输入
一个正整数(≤26)
输出
对应的图案。
样例输入
7
样例输出
a a
a ab
a abc
a abcd
a abcde
a abcdef
aabcdefg
3题
铺砖(必须用递归,函数原型为:int floorBrick(int n);)
描述对于一个2行N列的走道。现在用12,22的砖去铺满。问有多少种不同的方式。
下图是一个2行17列的走道的某种铺法。输入一个整数N(1<=n<=20),表示走道的列数。输出多少种铺法。样例输入12样例输出2731
#include<stdio.h>
void printRectangle(int a, int b, char s, int c){
int width=b,height=a,hollow=c;
char symbol=s;
if(hollow==0){
//空心
for(int i = 0;i < height;i++)
{
for(int j = 0;j < width;j++)
{
if(i==0 || i==(height-1))
printf("%c",symbol);
else
if(j==0 || j==(width-1))
printf("%c",symbol);
else
printf(" ");
}
printf("\n");
}
}
else{
//实心
for(int i = 0;i < height;i++)
{
for(int j = 0;j < width;j++)
{
if(i==0 || i==(height-1))
printf("%c",symbol);
else
printf("%c",symbol);
}
printf("\n");
}
}
return 0;
}
void printTriangle(int n){
for(int i=0;i<n;i++){
printf("a");
for(int j=0;j<i+1;j++)
{
printf("%c",'a'+j);
}
printf("\n");
}
}
int floorBrick(int n){
if(n == 1)
return 1;
if(n == 2)
return 3;
int typeNum = 2 * floorBrick(n-2) + floorBrick(n-1);
return typeNum;
}
#include<bits/stdc++.h>
using namespace std;
void printRectangle(int a, int b, char s, int c)
{
bool f=false;
if(c==1) f=true;
for(int i=1;i<=a;i++)
{
for(int j=1;j<=b;j++)
{
if(i==1||i==a||j==1||j==b)
{
cout<<s;
}
else {
if(f) cout<<s;
else cout<<' ';
}
}
cout<<endl;
}
}
void printTriangle(int n)
{
for(int i=1;i<=n;i++)
{
cout<<'a'<<' ';
for(int j=1;j<=i;j++)
{
char s='a'+j-1;
cout<<s;
}
cout<<endl;
}
}
int floorBrick(int n)
{
if(n==2) return 3;
if(n==1) return 1;
return 2*floorBrick(n-2)+floorBrick(n-1);
}
int main() {
int n;
cin>>n;
cout<<floorBrick(n);
}