题目
思路:
- 用一个数组k[]记录每行的符号个数(从1开始,依次+2);
- 用一个数组sum[]记录到第几行总共输出的符号个数。循环当sum超过n时结束,并将i-1就是最大能输出沙漏的上半行数。
- 利用i再进行输出。每行输出i-当前行个空格。再输出k[j]个字符。末位不再输出空格。
- 最后用n-sum【i】统计多余字符。
坑点:
测试点1错误是由于当n=sum[i]时,最后一行要输出0。
AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
char c;
cin>>n>>c;
int k[10001],sum[