1102解题报告
2012-01-05 22:45
363 查看
这个题目的难点在于怎么想办法让图形和数字建立映射关系,刚开始做这个题目的时候想着将0到9这十个数字的每一个数字映射到一个模型.可是试了一下,感觉不行
因为题目要输出的不是仅仅一个数字,而是一行数字,并且是可伸缩的. 所以要想其它的办法. 观察 这些电子钟数字的特点 其实一共有7个笔画组成 将他们分别定义成7个部分
每一笔画有哪些数字包含了就将他们记录下来. 这样从1 到7 就将这7个笔画都记录下来了.这样一次输出一行 移动有5行需要输出 程序如下
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main() {
int s;
char num[9];
int i,j;
int emp;
char b1[11]={'-',' ','-','-',' ','-','-','-','-','-'};
char b2[11]={'|','|',' ',' ','|','|','|',' ','|','|'};
char b3[11]={'|',' ','|','|','|',' ',' ','|','|','|'};
char b4[11]={' ',' ','-','-','-','-','-',' ','-','-'};
char b5[11]={'|','|','|',' ',' ',' ','|',' ','|',' '};
char b6[11]={'|',' ',' ','|','|','|','|','|','|','|'};
char b7[11]={'-',' ','-','-',' ','-','-',' ','-','-'};
while(1) {
memset(num,0,9);
scanf("%d %s",&s,num);
if(s==0) break;
for(i=0;i<strlen(num);i++) {
printf(" ");
for(j=0;j<s;j++)
printf("%c",b1[num[i]-'0']);
printf(" ");
}
printf("\n");
for(j=0;j<s;j++) {
for(i=0;i<strlen(num);i++) {
printf("%c",b2[num[i]-'0']);
for(emp=0;emp<s;emp++)
printf(" ");
printf("%c",b3[num[i]-'0']);
printf(" ");
}
printf("\n");
}
for(i=0;i<strlen(num);i++) {
printf(" ");
for(j=0;j<s;j++)
printf("%c",b4[num[i]-'0']);
printf(" ");
}
printf("\n");
for(j=0;j<s;j++) {
for(i=0;i<strlen(num);i++) {
printf("%c",b5[num[i]-'0']);
for(emp=0;emp<s;emp++) printf(" ");
printf("%c",b6[num[i]-'0']);
printf(" ");
}
printf("\n");
}
for(i=0;i<strlen(num);i++) {
printf(" ");
for(j=0;j<s;j++)
printf("%c",b7[num[i]-'0']);
printf(" ");
}
printf("\n");
}
}
因为题目要输出的不是仅仅一个数字,而是一行数字,并且是可伸缩的. 所以要想其它的办法. 观察 这些电子钟数字的特点 其实一共有7个笔画组成 将他们分别定义成7个部分
每一笔画有哪些数字包含了就将他们记录下来. 这样从1 到7 就将这7个笔画都记录下来了.这样一次输出一行 移动有5行需要输出 程序如下
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main() {
int s;
char num[9];
int i,j;
int emp;
char b1[11]={'-',' ','-','-',' ','-','-','-','-','-'};
char b2[11]={'|','|',' ',' ','|','|','|',' ','|','|'};
char b3[11]={'|',' ','|','|','|',' ',' ','|','|','|'};
char b4[11]={' ',' ','-','-','-','-','-',' ','-','-'};
char b5[11]={'|','|','|',' ',' ',' ','|',' ','|',' '};
char b6[11]={'|',' ',' ','|','|','|','|','|','|','|'};
char b7[11]={'-',' ','-','-',' ','-','-',' ','-','-'};
while(1) {
memset(num,0,9);
scanf("%d %s",&s,num);
if(s==0) break;
for(i=0;i<strlen(num);i++) {
printf(" ");
for(j=0;j<s;j++)
printf("%c",b1[num[i]-'0']);
printf(" ");
}
printf("\n");
for(j=0;j<s;j++) {
for(i=0;i<strlen(num);i++) {
printf("%c",b2[num[i]-'0']);
for(emp=0;emp<s;emp++)
printf(" ");
printf("%c",b3[num[i]-'0']);
printf(" ");
}
printf("\n");
}
for(i=0;i<strlen(num);i++) {
printf(" ");
for(j=0;j<s;j++)
printf("%c",b4[num[i]-'0']);
printf(" ");
}
printf("\n");
for(j=0;j<s;j++) {
for(i=0;i<strlen(num);i++) {
printf("%c",b5[num[i]-'0']);
for(emp=0;emp<s;emp++) printf(" ");
printf("%c",b6[num[i]-'0']);
printf(" ");
}
printf("\n");
}
for(i=0;i<strlen(num);i++) {
printf(" ");
for(j=0;j<s;j++)
printf("%c",b7[num[i]-'0']);
printf(" ");
}
printf("\n");
}
}
相关文章推荐
- 杭电OJ 1102(Constructing Roads)解题报告
- hdu 1102 pku 2421 解题报告
- PAT (Advanced Level) 1102. Invert a Binary Tree (25) 解题报告
- 济南-1102试题解题报告
- 【解题报告】 HDU 1102 Constructing Roads -- 并查集 最小生成树 Prime算法
- TYVJ 1102 单词的划分 解题报告
- HDU1102 Constructing Roads 解题报告--prim
- USACO :Money Systems解题报告
- 纵横填字游戏解题报告
- USACO4.3.3 街道赛跑 解题报告
- 【LeetCode】Longest Palindromic Substring 解题报告
- LeetCode解题报告--2Sum, 3Sum, 4Sum, K Sum求和问题总结
- E - I Love You Too解题报告
- HD 2062 Bone Collector 解题报告
- 杭州电子科技大学 Online Judge 之 “杨辉三角(ID2032)”解题报告
- hdu3790解题报告
- 2014 第六届蓝桥杯校内赛解题报告 答案
- Codeforces Round #332 (Div. 2)解题报告
- 赛码解题报告(七)
- LeetCode72 Edit Distance 解题报告