题目一:输入一个整数n:打印2 * n层的菱形
代码
#include<iostream>
#include<math.h>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n-1-i;j++) cout<<" ";
for(int j=0;j<2*i+1;j++) cout<<"*";
cout<<endl;
}
for(int i=0;i<n;i++){
for(int j=0;j<i;j++) cout<<" ";
for(int j=0;j<2*(n-i)-1;j++) cout<<"*";
cout<<endl;
}
}
样例:输入n = 4
输出
*
***
*****
*******
*******
*****
***
*
题目二:输入一个整数n,打印菱形字母,字母从A开始,每次递增,到达中间之后又依次递减
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
char ch = 'A';
for(int i=0;i<n;i++){
for(int j=0;j<n-i-1;j++) cout<<" ";
for(int j=0;j<2*i+1;j++) cout<<ch;
cout<<endl;
ch++;
}
ch -= 2;
for(int i=1;i<n;i++){
for(int j=0;j<i;j++) cout<<" ";
for(int j=0;j<2*(n-i)-1;j++) cout<<ch;
ch--;
cout<<endl;
}
}
样例:输入n = 4
输出
A
BBB
CCCCC
DDDDDDD
CCCCC
BBB
A
题目三:输入一个整数,打印菱形,每行从A开始,依次底层,到达一半之后依次递减,最后回到A
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
for(int i=0;i<n;i++){
char ch = 'A';
for(int j=0;j<n-i-1;j++) cout<<" ";
for(int j=0;j<2*i+1;j++){
cout<<ch;
if(j<i) ch++;
else ch--;
}
cout<<endl;
}
for(int i=1;i<n;i++){
char ch = 'A';
for(int j=0;j<i;j++){
cout<<" ";
}
for(int j=0;j<2*(n-i)-1;j++){
cout<<ch;
if(j<=n-i) ch++;
else ch--;
}
cout<<endl;
}
}
样例:输入n = 4
输出
A
ABA
ABCBA
ABCDCBA
ABCBA
ABC
A
题目四:打印房子,输入两个数如:2 2,输出被包裹的2 * 2的星号
输出:被房子包裹的四个星号
+-+-+
|*|*|
+-+-+
|*|*|
+-+-+
代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
int start = 0,end = 0,sum = 2 * n + 1;
bool flag = false;
while(true){
if((start & 1) == 0){
for(int i=0;i<sum;i++){
if((i&1) == 0) cout<<"+";
else cout<<"-";
}
}else{
for(int i=0;i<sum;i++){
if((i&1) == 0) cout<<"|";
else {
cout<<"*";
end++;
if(end==n*m) flag = true;
}
}
}
if(flag){
cout<<endl;
for(int i=0;i<sum;i++){
if((i&1) == 0) cout<<"+";
else cout<<"-";
}
break;
}
cout<<endl;
start++;
}
return 0;
}
样例:输入n = 5,m = 5
输出:
+-+-+-+-+-+
|*|*|*|*|*|
+-+-+-+-+-+
|*|*|*|*|*|
+-+-+-+-+-+
|*|*|*|*|*|
+-+-+-+-+-+
|*|*|*|*|*|
+-+-+-+-+-+
|*|*|*|*|*|
+-+-+-+-+-+