FAFU-OJ 1408 摆花
2013-12-12 19:41
225 查看
题目连接:http://acm.fafu.edu.cn/problem.php?id=1408
方法一:开一个数组char s[1000][1000]保存图形,再打印。
#include <stdio.h> char s[999][999]; int main() { int i,j,q,n; scanf("%d",&n); char c = 'A' + (n+1)/2%26; int t = (n+1)/2; for(q = 1; q <= t; q++) { if(c == 'A') c = 'Z'; else c--; for(i = q; i <= n+1-q; i++) { s[q][i] = s[n+1-q][i] = s[i][n+1-q] = s[i][q] = c; } } for(i = 1; i <= n; i++) { for(j = 1; j <= n; j++) printf(" %c",s[i][j]); printf("\n"); } return 0; }
这道题的另一种写法:(不用开数组,只要找到每个点的规律,用i,j表示出来,直接打印可以省去很多memory)
#include <stdio.h> int n; int t; char print(int x,int y) { char c; int min; x = x>t?2*t-x:x; y = y>t?2*t-y:y; min = (x>y)?y:x; c = 'A'+(t-min)%26; return c; } int main() { scanf("%d",&n); int i,j; t = (n+1)/2; for(i = 1; i <= n; i++) { for(j = 1; j <= n; j++) printf(" %c",print(i,j)); printf("\n"); } return 0; }
相关文章推荐
- Linux C函数参考手册(PDF版)
- 什么是Perl?编程语言Perl详细介绍
- C#实现打造气泡屏幕保护效果
- C/C++数据对齐详细解析
- C 语言基础教程(我的C之旅开始了)[三]
- C 语言基础教程(我的C之旅开始了)[七]
- C/C++ 宏详细解析
- 用C#生成不重复的随机数的代码
- 在c和c++中实现函数回调
- 浅析C/C++中被人误解的SIZEOF
- C 语言基础教程(我的C之旅开始了)[六]
- 程序员必看2008编程语言走势解盘
- c/c++中变量的声明和定义深入解析
- 浅析c与c++中struct的区别
- 深入详解C编写Windows服务程序的五个步骤
- 深入理解C/C++混合编程
- C 语言基础教程(一)颜色加亮
- 关于《C和指针》的学习笔记
- c_str()的用法详细解析