本文主要是介绍FPX NB!(打印图形-细节-空格问题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
problem Description
作为一名 lol 老玩家,ljj 听到 FPX 夺冠后激动地不知道如何庆祝,想来想去决定让你打印图形 FPX,用字符 ‘N’ 打印 F ,用 ‘B’ 打印 P ,用 ‘!’ 打印X
Input
一个整数n(n>=5&&n为奇数,n<=31),表示打印图形的行数
Output
打印的图形,具体输出格式见样例
Sample Input
9
Sample Output
NNNNN BBBBB ! !
N B B ! !
N B B ! !
N B B ! !
NNNNN BBBBB !
N B ! !
N B ! !
N B ! !
N B ! !
Hint
F 的宽度为 n/2+1, P 的宽度为n/2+1, X 的宽度为 n
Source
错因:打印x的时候,最后的!后无空格。呜呜,不知道这个梗,一直wa了两天。
#include <bits/stdc++.h>using namespace std;
char a[100][100];
int main()
{int n;cin>>n;for(int j=1; j<=2*n+3; j++){for(int i=1; i<=n; i++){if(j==1)a[i][j]='N';if(j>=2&&j<=n/2+1){if(i==1||i==n/2+1)a[i][j]='N';elsea[i][j]=' ';}if(j==n/2+2)a[i][j]=' ';if(j==n/2+3){a[i][j]='B';}if(j>=n/2+4&&j<=n+1){if(i==1||i==n/2+1)a[i][j]='B';elsea[i][j]=' ';}if(j==n+2){if(i>=1&&i<=n/2+1)a[i][j]='B';elsea[i][j]=' ';}if(j==n+3)a[i][j]=' ';if(j>=n+4&&j<=2*n+3){if(i==j-(n+3))a[i][j]='!';else if(i==n+1-(j-n-3))a[i][j]='!';elsea[i][j]=' ';}}}for(int i=1 ; i <=n/2+1; i++){for(int j=1; j <=2*n+3-i+1; j++){**if(j==2*n+3-i+1)//空格问题**cout<<a[i][j]<< endl;elsecout<<a[i][j];}}**int top = n / 2 - 1;//空格问题**for(int i = n/2+2;i <= n;i++){for(int j=1; j <=2*n+3 - top; j++){if(j==2*n+3-top)cout<<a[i][j] << endl;elsecout<<a[i][j];}top--;}return 0;
}
这篇关于FPX NB!(打印图形-细节-空格问题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!