1217: 打印沙漏
来源:互联网 发布:数据运营 编辑:程序博客网 时间:2024/04/30 12:35
From: 合工宣OJ http://xcacm.hfut.edu.cn/problem.php?id=1217
时间限制: 1 Sec 内存限制: 128 MB
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印
所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
输入
输入在一行给出1个正整数N(<=1000)和一个符号,中间以空格分隔
输出
首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。
样例输入
19 *
样例输出
本题只需要循环输出判断即可,实现过程可能会有一些绕路。
#include <stdio.h>#include<iostream>using namespace std;int ui(int n) { if(n == 1) return 1; else return ui(n-1)+4*n-2; } void al(int N, int n, char c) { int i; if(n == 1) { for(i = 0; i < N - n; i++) printf(" "); printf("%c", c); printf("\n"); return ; } else { for(i = 0; i < N - n; i++) printf(" "); for(i = 0; i < 2*n-1; i++) printf("%c", c); printf("\n"); al(N, n-1, c); } } void pl(int N, int n, char c) { int i; if(n == N) { for(i = 0; i < 2 * n + 1; i++) printf("%c", c); printf("\n"); return ; } else { for(i = 0; i < N - n; i++) printf(" "); for(i = 0; i < 2 * n + 1; i++) printf("%c", c); printf("\n"); pl(N, n+1, c); } } void printf_n(int n, char c) { int i, j; for(i = n; i > 0; i--) { for(j = n - i; j > 0; j--) printf(" "); for(j = 0; j < 2 * i - 1; j++) printf("%c", c); printf("\n"); } for(i = 1; i < n; i++) { for(j = n - i; j > 1; j--) printf(" "); for(j = 0; j < 2 * i + 1; j++) printf("%c", c); printf("\n"); } } int main(void) { char c; int n, N, a,b; while(scanf("%d %c", &N, &c)!=EOF) { n = 1; while(N >= (a =ui(n))) { n++; b =a; } n--; printf_n(n, c); printf("%d\n", N - b); } return 0; }/************************************************************** Problem: 1217 User: 2014217052 Language: C++ Result: 正确 Time:41 ms Memory:1504 kb****************************************************************/
0 0
- 1217: 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏形
- pat_b_1027 打印沙漏
- How To Install / Configure VNC Server On CentOS 7.
- CheckedTextView的使用、学android疯狂讲义第二版遇到的问题希望能帮到和我一样的初学者、新手
- 2015062507 - 星际迷航.红杉
- LeetCode95:Unique Binary Search Trees II
- C的高级数据表达
- 1217: 打印沙漏
- Python解析HDF文件
- spring boot快速构建权限系统
- Android Picasso
- poj3522解题报告
- Objective-C程序设计第七章----More on Classes
- 在运行时管理Manifest Receiver
- HttpClient的MultipartEntity
- 单链表的c++实现,使用模板