|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 lsdsg 于 2021-10-7 21:37 编辑
【问题描述】
根据输入的整数n,输出对称的菱形字母塔。该字母塔有2*n-1行,每一行有若干个空格字符和大写英文字母组成。
【输入形式】
输入一个自然数n(1<=n<=26)
【输出形式】
输出由2*n-1行大写英文字母和空格组成的字母塔,其规律请见样例输出。其中的第n行最左面没有空格,每一行的右侧也没有空格。
【样例输入1】
4
【样例输出1】
【样例输入2】
8
【样例输出2】
Python 代码:- n = int(input())
- for i in range(n, 0, -1):
- alphabet = ''.join([chr(a) for a in range(65, n-i+65)])+''.join([chr(a) for a in range(n-i+65, 64, -1)])
- space = " "*(i-1)
- print(space + alphabet + space)
- for i in range(2, n+1):
- alphabet = ''.join([chr(a) for a in range(65, n-i+65)])+''.join([chr(a) for a in range(n-i+65, 64, -1)])
- space = " "*(i-1)
- print(space + alphabet + space)
复制代码 C++ 代码:- #include <bits/stdc++.h>
- using namespace std;
- int main(){
- int n;
- cin >> n;
- for(int i=n; i>0; i--){
- for(int j=0; j<i-1; j++) cout << " ";
- for(int j=65; j<(n-i+65); j++) cout << (char)j;
- for(int j=n-i+65; j>=65; j--) cout << (char)j;
- for(int j=0; j<i-1; j++) cout << " ";
- cout << endl;
- }
- for(int i=2; i<=n; i++){
- for(int j=0; j<i-1; j++) cout << " ";
- for(int j=65; j<(n-i+65); j++) cout << (char)j;
- for(int j=n-i+65; j>=65; j--) cout << (char)j;
- for(int j=0; j<i-1; j++) cout << " ";
- cout << endl;
- }
- return 0;
- }
复制代码 C 代码:- #include <stdio.h>
- int main(){
- int n;
- scanf("%d", &n);
- for(int i=n; i>0; i--){
- for(int j=0; j<i-1; j++) printf(" ");
- for(int j=65; j<(n-i+65); j++) printf("%c", j);
- for(int j=n-i+65; j>=65; j--) printf("%c", j);
- for(int j=0; j<i-1; j++) printf(" ");
- printf("\n");
- }
- for(int i=2; i<=n; i++){
- for(int j=0; j<i-1; j++) printf(" ");
- for(int j=65; j<(n-i+65); j++) printf("%c", j);
- for(int j=n-i+65; j>=65; j--) printf("%c", j);
- for(int j=0; j<i-1; j++) printf(" ");
- printf("\n");
- }
- return 0;
- }
复制代码
|
|