A Computer Graphics Problem
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2312 Accepted Submission(s): 1637
Problem Description
In this problem we talk about the study of Computer Graphics. Of course, this is very, very hard.
We have designed a new mobile phone, your task is to write a interface to display battery powers.
Here we use '.' as empty grids.
When the battery is empty, the interface will look like this:
*------------*
|............|
|............|
|............|
|............|
|............|
|............|
|............|
|............|
|............|
|............|
*------------*
When the battery is 60% full, the interface will look like this:
*------------*
|............|
|............|
|............|
|............|
|------------|
|------------|
|------------|
|------------|
|------------|
|------------|
*------------*
Each line there are 14 characters.
Given the battery power the mobile phone left, say x%, your task is to output the corresponding interface. Here x will always be a multiple of 10, and never exceeds 100.
Input
The first line has a number T (T < 10) , indicating the number of test cases.
For each test case there is a single line with a number x. (0 < x < 100, x is a multiple of 10)
Output
For test case X, output "Case #X:" at the first line. Then output the corresponding interface.
See sample output for more details.
Sample Input
2 0 60
Sample Output
Case #1: *------------* |............| |............| |............| |............| |............| |............| |............| |............| |............| |............| *------------* Case #2: *------------* |............| |............| |............| |............| |------------| |------------| |------------| |------------| |------------| |------------| *------------*
Source
2013 ACM/ICPC Asia Regional Online —— Warmup2
问题链接:HDU4716 A Computer Graphics Problem。
题意简述:
根据输入的数(代表剩余电量,值范围是0到100),打印一个反映剩余电量的字符图案。
需要注意的点是,怎样把程序编写得更加简洁,无用的条件判断等要尽可能略去。再一点是,循环控制如何能够做的更加简单。
*------------*
|............|
|............|
|............|
|............|
|............|
|............|
|............|
|............|
|............|
|............|
*------------*
*------------*
|............|
|............|
|............|
|............|
|------------|
|------------|
|------------|
|------------|
|------------|
|------------|
*------------*
问题分析:(略)
程序说明:(略)
AC的C语言程序如下:
/* HDU4716 A Computer Graphics Problem */
#include <stdio.h>
int main(void)
{
int t, x, i, j;
scanf("%d", &t);
for(i=1; i<=t; i++) {
scanf("%d", &x);
printf("Case #%d:\n", i);
printf("*------------*\n");
x /=10;
for(j=1; j<=10-x; j++)
printf("|............|\n");
for(j=1; j<=x; j++)
printf("|------------|\n");
printf("*------------*\n");
}
return 0;
}