## 706 - LCD Display

Moderator: Board moderators

little joey
Guru
Posts: 1080
Joined: Thu Dec 19, 2002 7:37 pm
No, you don't wrap long lines; the maximum line length (for an eight digit number) is 8*12+7=103 characters.
Your output looks good, apart from the wrapping.
Are you sure you fill up every line to it's full length, also for 5 and 6 as the last digit?
Are you sure you don't print an extra column of spaces at the end the last digit?
Are you sure you print an empty line (that's without spaces) after each number (including the last)?

bellidoks
New poster
Posts: 3
Joined: Mon Jul 19, 2004 11:04 pm
Thank you very much for your help. I'll try to solve the problem and see what the server says...

gmenhorn
New poster
Posts: 4
Joined: Sat Aug 07, 2004 4:31 pm
little joey wrote:No, you don't wrap long lines; the maximum line length (for an eight digit number) is 8*12+7=103 characters.
Your output looks good, apart from the wrapping.
Are you sure you fill up every line to it's full length, also for 5 and 6 as the last digit?
Are you sure you don't print an extra column of spaces at the end the last digit?
Are you sure you print an empty line (that's without spaces) after each number (including the last)?

- took out wrapping
- I'm sure that every line is filled to its full length
- I don't print an extra column of spaces at the end of the last digit
- I print an empty line, without spaces, after each number including the last

I replaced the spaces with period characters to make it clearer how my output looks. The same input from the my previous post was used and wrapping removed. Here are the results. There must be some case that I'm missing but I can't for the life of me figure out what it is. I've read over the description thousands of times trying find what that subtle issue is. Again, thanks for taking a look.

Code: Select all

``````......--...--........--.
...|....|....|.|..|.|...
...|....|....|.|..|.|...
......--...--...--...--.
...|.|.......|....|....|
...|.|.......|....|....|
......--...--........--.

.---...---...---...---...---.
|.........|.|...|.|...|.|...|
|.........|.|...|.|...|.|...|
|.........|.|...|.|...|.|...|
.---.........---...---.......
|...|.....|.|...|.....|.|...|
|...|.....|.|...|.....|.|...|
|...|.....|.|...|.....|.|...|
.---.........---...---...---.

.----------...----------...----------...----------...----------...----------...----------...----------.
|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|
|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|
|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|
|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|
|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|
|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|
|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|
|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|
|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|
|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|.|..........|
.----------...----------...----------...----------...----------...----------...----------...----------.
...........|............|............|............|............|............|............|............|
...........|............|............|............|............|............|............|............|
...........|............|............|............|............|............|............|............|
...........|............|............|............|............|............|............|............|
...........|............|............|............|............|............|............|............|
...........|............|............|............|............|............|............|............|
...........|............|............|............|............|............|............|............|
...........|............|............|............|............|............|............|............|
...........|............|............|............|............|............|............|............|
...........|............|............|............|............|............|............|............|
.----------...----------...----------...----------...----------...----------...----------...----------.

.----------.
|..........|
|..........|
|..........|
|..........|
|..........|
|..........|
|..........|
|..........|
|..........|
|..........|
............
|..........|
|..........|
|..........|
|..........|
|..........|
|..........|
|..........|
|..........|
|..........|
|..........|
.----------.

.........-----...-----.........
......|.|.....|.|.....|.|.....|
......|.|.....|.|.....|.|.....|
......|.|.....|.|.....|.|.....|
......|.|.....|.|.....|.|.....|
......|.|.....|.|.....|.|.....|
.................-----...-----.
......|.|.....|.......|.......|
......|.|.....|.......|.......|
......|.|.....|.......|.......|
......|.|.....|.......|.......|
......|.|.....|.......|.......|
.........-----...-----.........

..................................
.....|......|......|......|......|
.....|......|......|......|......|
.....|......|......|......|......|
.....|......|......|......|......|
..................................
.....|......|......|......|......|
.....|......|......|......|......|
.....|......|......|......|......|
.....|......|......|......|......|
..................................

.......---...---.........---...---.........---.
....|.|...|.|...|.....|.|...|.|...|.....|.|...|
....|.|...|.|...|.....|.|...|.|...|.....|.|...|
....|.|...|.|...|.....|.|...|.|...|.....|.|...|
.......---...---.........---...---.........---.
....|.|...|.|...|.....|.|...|.|...|.....|.|...|
....|.|...|.|...|.....|.|...|.|...|.....|.|...|
....|.|...|.|...|.....|.|...|.|...|.....|.|...|
.......---...---.........---...---.........---.

.-.
|.|
...
|.|
.-.

.--.
|..|
|..|
....
|..|
|..|
.--.

.---.
|...|
|...|
|...|
.....
|...|
|...|
|...|
.---.

.--------....................................--------.
.........|..........|.|........|..........|.|.........
.........|..........|.|........|..........|.|.........
.........|..........|.|........|..........|.|.........
.........|..........|.|........|..........|.|.........
.........|..........|.|........|..........|.|.........
.........|..........|.|........|..........|.|.........
.........|..........|.|........|..........|.|.........
.........|..........|.|........|..........|.|.........
.--------..............--------..............--------.
.........|..........|..........|..........|..........|
.........|..........|..........|..........|..........|
.........|..........|..........|..........|..........|
.........|..........|..........|..........|..........|
.........|..........|..........|..........|..........|
.........|..........|..........|..........|..........|
.........|..........|..........|..........|..........|
.........|..........|..........|..........|..........|
.--------....................................--------.

``````

little joey
Guru
Posts: 1080
Joined: Thu Dec 19, 2002 7:37 pm
Beats me. Your output looks good.
You can PM me your code, if you like, and I will have a look at it.

..
A great helper
Posts: 454
Joined: Thu Oct 18, 2001 2:00 am
Location: Hong Kong

I am not sure if the input has leading zero, but my code also handled that
My signature:
We can learn much more in discussion than reading source code.
• I HATE testing account.
• Don't send me source code for debug.

little joey
Guru
Posts: 1080
Joined: Thu Dec 19, 2002 7:37 pm
My AC program doesn't handle leading zeros (the answer for 007 is the same as for 7, namely one zeven), so I think there are no leading zeros in the input... Good idea, though.

gmenhorn
New poster
Posts: 4
Joined: Sat Aug 07, 2004 4:31 pm
I just rewrote the problem from scratch, submitted, and got an 'Accepted'! The only think that I can think of that is different (don't have access to the old version at the moment) is that I used loops this time rather than use std::string's resize function to create the strings. Maybe, there is some implementation difference in the compiler (I compiled/tested using g++ 3.3.1) or it didn't handle some strange case that I didn't have a test case for. Thanks for your time though.

--
George

bellidoks
New poster
Posts: 3
Joined: Mon Jul 19, 2004 11:04 pm
I got AC now

itsme86
New poster
Posts: 3
Joined: Tue Sep 14, 2004 9:16 am
I've got the same problem as the original poster. The only weird thing I can see in my output is if you try printing a number with 0 size:

Code: Select all

``````\$ ./706 < temp.txt
......--...--........--.
...|....|....|.|..|.|...
...|....|....|.|..|.|...
......--...--...--...--.
...|.|.......|....|....|
...|.|.......|....|....|
......--...--........--.

.---...---...---...---...---.
|.........|.|...|.|...|.|...|
|.........|.|...|.|...|.|...|
|.........|.|...|.|...|.|...|
.---.........---...---.......
|...|.....|.|...|.....|.|...|
|...|.....|.|...|.....|.|...|
|...|.....|.|...|.....|.|...|
.---.........---...---...---.

\$
``````
But then...

Code: Select all

``````1 8
.-.
|.|
.-.
|.|
.-.

0 8
..
..
..

``````
Will someone that's gotten AC on this problem tell me what kind of output they get for size 0 numbers? Or anyone have any other ideas as to what might be wrong?

EDIT: Here's my code if it provides a clue (with .'s instead of spaces):

Code: Select all

``````#include <stdio.h>
#include <stdlib.h>

#define TOP         0x1
#define TOPLEFT     0x2
#define TOPRIGHT    0x4
#define CENTER      0x8
#define BOTTOMLEFT  0x10
#define BOTTOMRIGHT 0x20
#define BOTTOM      0x40

unsigned char bitmaps[10] =
{
TOP | TOPLEFT | TOPRIGHT | BOTTOMLEFT | BOTTOMRIGHT | BOTTOM,
TOPRIGHT | BOTTOMRIGHT,
TOP | TOPRIGHT | CENTER | BOTTOMLEFT | BOTTOM,
TOP | TOPRIGHT | CENTER | BOTTOMRIGHT | BOTTOM,
TOPLEFT | TOPRIGHT | CENTER | BOTTOMRIGHT,
TOP | TOPLEFT | CENTER | BOTTOMRIGHT | BOTTOM,
TOP | TOPLEFT | CENTER | BOTTOMLEFT | BOTTOMRIGHT | BOTTOM,
TOP | TOPRIGHT | BOTTOMRIGHT,
TOP | TOPLEFT | TOPRIGHT | CENTER | BOTTOMLEFT | BOTTOMRIGHT | BOTTOM,
TOP | TOPLEFT | TOPRIGHT | CENTER | BOTTOMRIGHT | BOTTOM
};

void print_horizontal(int num, int size, int bit)
{
int i, ch;

putchar('.');
ch = bitmaps[num] & bit?'-':'.';
for(i = 0;i < size;++i)
putchar(ch);
putchar('.');
}

void print_vertical(int num, int size, int leftbit, int rightbit)
{
int i;

putchar(bitmaps[num] & leftbit?'|':'.');
for(i = 0;i < size;++i)
putchar('.');
putchar(bitmaps[num] & rightbit?'|':'.');
}

int main(void)
{
char buf[50], *p, *q;
int i, size;

while(fgets(buf, sizeof(buf), stdin))
{
size = atoi(buf);
for(p = buf;*p && *p != ' ';p++);
while(*p == ' ')
p++;
if(!size && *p == '0')
break;

for(q = p;*q >= '0' && *q <= '9';++q)
{
if(q-p)
putchar('.');
print_horizontal(*q-'0', size, TOP);
}
putchar('\n');
for(i = 0;i < size;++i)
{
for(q = p;*q >= '0' && *q <= '9';++q)
{
if(q-p)
putchar('.');
print_vertical(*q-'0', size, TOPLEFT, TOPRIGHT);
}
putchar('\n');
}
for(q = p;*q >= '0' && *q <= '9';++q)
{
if(q-p)
putchar('.');
print_horizontal(*q-'0', size, CENTER);
}
putchar('\n');
for(i = 0;i < size;++i)
{
for(q = p;*q >= '0' && *q <= '9';++q)
{
if(q-p)
putchar('.');
print_vertical(*q-'0', size, BOTTOMLEFT, BOTTOMRIGHT);
}
putchar('\n');
}
for(q = p;*q >= '0' && *q <= '9';++q)
{
if(q-p)
putchar('.');
print_horizontal(*q-'0', size, BOTTOM);
}

puts("\n");
}

return 0;
}
``````

alu_mathics
Learning poster
Posts: 55
Joined: Sat Jan 24, 2004 9:30 pm
Location: Chittagong
Contact:

Code: Select all

``````1 8
0 8
8 0
4 007
0 1234
0 0
``````

Code: Select all

`````` -
| |
-
| |
-

--------
|        |
|        |
|        |
|        |
|        |
|        |
|        |
|        |

|        |
|        |
|        |
|        |
|        |
|        |
|        |
|        |
--------

----   ----   ----
|    | |    |      |
|    | |    |      |
|    | |    |      |
|    | |    |      |

|    | |    |      |
|    | |    |      |
|    | |    |      |
|    | |    |      |
----   ----

``````
cuii e

randomtaiwanese
New poster
Posts: 32
Joined: Fri Oct 01, 2004 10:53 pm
this is my code... but it doesnt seem to work keep getting wrong answers

[java]import java.io.IOException;
import java.util.StringTokenizer;
class Main
{
int[][] lcd;
int count=1;
int[] num;
{
byte lin[]=new byte[maxLg];
int lg=0,car=-1;
String line="";
try
{
while(lg<maxLg)
{
if ((car<0)||(car=='\n'))
{
break;
}
lin[lg++]+=car;
}
}
catch(IOException e)
{
return(null);
}
if ((car<0)&&(lg==0))
{
return(null);
}
return (new String (lin, 0, lg));
}
public static void main(String[] args)
{
Main newMain = new Main();
newMain.start();
}
void start()
{
String input;
StringTokenizer tokenizer;
int m, n;
lcd = new int[11][3];
while ((input = Main.ReadLn (255)) != null)
{
tokenizer=new StringTokenizer (input);
m=Integer.parseInt(tokenizer.nextToken());
n=Integer.parseInt(tokenizer.nextToken());
if(!(m==0))
{
lcd[count][1]=m;
lcd[count][2]=n;
count++;
}
else if(m==0)
{
printLCD();
}
}
}
void Act1(int length, int size)
{
for(int j=0;j<length;j++)
{
switch(num[j])
{
case 1:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print(" ");
break;
case 2:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 3:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 4:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print(" ");
break;
case 5:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 6:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 7:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 8:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 9:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 0:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;

}
System.out.print(" ");
}
}
void Act2(int length,int size)
{
for(int u=0;u<size;u++)
{
System.out.println("");
for(int j=0;j<length;j++)
{
switch(num[j])
{
case 1:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 2:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 3:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 4:
System.out.print("|");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 5:
System.out.print("|");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print(" ");
break;
case 6:
System.out.print("|");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print(" ");
break;
case 7:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 8:
System.out.print("|");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 9:
System.out.print("|");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 0:
System.out.print("|");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;

}
System.out.print(" ");
}
}
}
void Act3(int length, int size)
{
for(int j=0;j<length;j++)
{
switch(num[j])
{
case 1:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print(" ");
break;
case 2:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 3:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 4:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 5:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 6:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 7:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print(" ");
break;
case 8:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 9:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 0:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print(" ");
break;

}
System.out.print(" ");
}
}
void Act4(int length,int size)
{
for(int u=0;u<size;u++)
{
System.out.println("");
for(int j=0;j<length;j++)
{
switch(num[j])
{
case 1:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 2:
System.out.print("|");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print(" ");
break;
case 3:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 4:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 5:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 6:
System.out.print("|");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 7:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 8:
System.out.print("|");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 9:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;
case 0:
System.out.print("|");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print("|");
break;

}
System.out.print(" ");
}
}
}
void Act5(int length, int size)
{
for(int j=0;j<length;j++)
{
switch(num[j])
{
case 1:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print(" ");
break;
case 2:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 3:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 4:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print(" ");
break;
case 5:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 6:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 7:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print(" ");
}
System.out.print(" ");
break;
case 8:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 9:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;
case 0:
System.out.print(" ");
for(int l=0;l<size;l++)
{
System.out.print("-");
}
System.out.print(" ");
break;

}
System.out.print(" ");
}
}
void printLCD()
{
for(int i=1;i<count;i++)
{
if(!(i==1))
{
System.out.println("");
}
int size = lcd[1];
String str = new Integer(lcd[2]).toString();
int length = str.length();
num = new int[length];
for(int j=0;j<length;j++)
{
num[j] = Integer.parseInt(new Character(str.charAt(j)).toString());
}
Act1(length, size);
Act2(length, size);
System.out.println("");
Act3(length, size);
Act4(length, size);
System.out.println("");
Act5(length, size);
if(i==1)
{
System.out.println("");
}
}
}
}
[/java]

hiloshi
New poster
Posts: 20
Joined: Fri Aug 27, 2004 8:15 am
Location: Kanagawa, Japan
hi randomtaiwanese.

I think you don't need to use such many function, sould use the Display Number template instead.
Try to draw some Display Number by hands.

For example, when the Number is 3 and Size is 1, it is represented by follow.

Code: Select all

``````.-.
..|
.-.
..|
.-.
``````
"." represents a space.
Then you should think the Number 3 in Size=2.
How you draw 3?
Where would be change, and where would be not change?
Think about it, then your souce will get more simple and you will find a bug.
I hope you can understand my poor English.

randomtaiwanese
New poster
Posts: 32
Joined: Fri Oct 01, 2004 10:53 pm
can someone give me some good sample test inputs???

randomtaiwanese
New poster
Posts: 32
Joined: Fri Oct 01, 2004 10:53 pm

### 706.... o.O

this is my code, and it doesnt work, according to the judge...
[java]import java.io.IOException;
import java.util.StringTokenizer;

class Main
{
String[][] lcd;
int count=1;
int[] num;
int size, length;
char[] chars = new char[3];
final char space = ' ';
{
byte lin[]=new byte[maxLg];
int lg=0,car=-1;
String line="";
try
{
while(lg<maxLg)
{
if ((car<0)||(car=='\n'))
{
break;
}
lin[lg++]+=car;
}
}
catch(IOException e)
{
return(null);
}
if ((car<0)&&(lg==0))
{
return(null);
}
return (new String (lin, 0, lg));
}
public static void main(String[] args)
{
Main newMain = new Main();
newMain.start();
}
void start()
{
String input;
StringTokenizer tokenizer;
String m, n;
lcd = new String[11][3];
while ((input = Main.ReadLn (65535)) != null)
{
tokenizer=new StringTokenizer (input);
m=tokenizer.nextToken();
n=tokenizer.nextToken();
if((Integer.parseInt(m)==0)&&(Integer.parseInt(n)==0))
{
//here start drawing
for(int i=1;i<count;i++)
{
//System.out.println("");
size = Integer.parseInt(lcd[1]);
if(((size<10)&&(size>0))&&((Integer.parseInt(lcd[2])<99999999)))
{
String str = lcd[2];
length = str.length();
num = new int[length];
for(int j=0;j<length;j++)
{
num[j] = Integer.parseInt(new Character(str.charAt(j)).toString());
}
//draw first line
setChar(0,0);
setChar(2,0);
for(int j=0;j<length;j++)
{
if((num[j]==1)||(num[j]==4))
setChar(1,0);
else
setChar(1,2);
draw();
drawBlank();
}
//second line
setChar(1,0);
for(int u=0;u<size;u++)
{
System.out.println("");
for(int j=0;j<length;j++)
{
if((num[j]==1)||(num[j]==2)||(num[j]==3)||(num[j]==7))
setChar(0,0);
else
setChar(0,1);
if((num[j]==5)||(num[j]==6))
setChar(2,0);
else
setChar(2,1);
draw();
drawBlank();
}
}
System.out.println("");
//third line
setChar(0,0);
setChar(2,0);
for(int j=0;j<length;j++)
{
if((num[j]==1)||(num[j]==7)||(num[j]==0))
setChar(1,0);
else
setChar(1,2);
draw();
drawBlank();
}
//forth line
setChar(1,0);
for(int u=0;u<size;u++)
{
System.out.println("");
for(int j=0;j<length;j++)
{
if(num[j]==2)
setChar(2,0);
else
setChar(2,1);
if((num[j]==2)||(num[j]==6)||(num[j]==8)||(num[j]==0))
setChar(0,1);
else
setChar(0,0);
draw();
drawBlank();
}
}
System.out.println("");
//fifth line
setChar(0,0);
setChar(2,0);
for(int j=0;j<length;j++)
{
if((num[j]==1)||(num[j]==4)||(num[j]==7))
setChar(1,0);
else
setChar(1,2);
draw();
drawBlank();
}
System.out.println("");
}
System.out.println("");
}
//System.out.println("");
break;
}
else
{
lcd[count][1]=m;
lcd[count][2]=n;
count++;
}
}
}
void drawBlank()
{
System.out.print(space);
}
void setChar(int charnum, int chartype)
{
switch(chartype)
{
case 0:
chars[charnum]=space;
break;
case 1:
chars[charnum]='|';
break;
case 2:
chars[charnum]='-';
break;
}
}
void draw()
{
System.out.print(chars[0]);
for(int l=0;l<size;l++)
{
System.out.print(chars[1]);
}
System.out.print(chars[2]);
}
}[/java]

randomtaiwanese
New poster
Posts: 32
Joined: Fri Oct 01, 2004 10:53 pm

[java]import java.io.IOException;
import java.util.StringTokenizer;
class Main
{
String[][] lcd;
int count=1;
int[] num;
int size, length;
char[] chars = new char[3];
final char space = ' ';
{
byte lin[]=new byte[maxLg];
int lg=0,car=-1;
String line="";
try
{
while(lg<maxLg)
{
if ((car<0)||(car=='\n'))
{
break;
}
lin[lg++]+=car;
}
}
catch(IOException e)
{
return(null);
}
if ((car<0)&&(lg==0))
{
return(null);
}
return (new String (lin, 0, lg));
}
public static void main(String[] args)
{
Main newMain = new Main();
newMain.start();
}
void start()
{
String input;
StringTokenizer tokenizer;
String m, n;
lcd = new String[11][3];
while ((input = Main.ReadLn (65535)) != null)
{
tokenizer=new StringTokenizer (input);
m=tokenizer.nextToken();
n=tokenizer.nextToken();
if((Integer.parseInt(m)==0)&&(Integer.parseInt(n)==0))
{
//here start drawing
for(int i=1;i<count;i++)
{
System.out.println("");
size = Integer.parseInt(lcd[1]);
if(size>10)
break;
String str = lcd[2];
length = str.length();
num = new int[length];
for(int j=0;j<length;j++)
{
num[j] = Integer.parseInt(new Character(str.charAt(j)).toString());
}
//draw first line
setChar(0,0);
setChar(2,0);
for(int j=0;j<length;j++)
{
if((num[j]==1)||(num[j]==4))
setChar(1,0);
else
setChar(1,2);
draw();
drawBlank();
}
//second line
setChar(1,0);
for(int u=0;u<size;u++)
{
System.out.println("");
for(int j=0;j<length;j++)
{
if((num[j]==1)||(num[j]==2)||(num[j]==3)||(num[j]==7))
setChar(0,0);
else
setChar(0,1);
if((num[j]==5)||(num[j]==6))
setChar(2,0);
else
setChar(2,1);
draw();
drawBlank();
}
}
System.out.println("");
//third line
setChar(0,0);
setChar(2,0);
for(int j=0;j<length;j++)
{
if((num[j]==1)||(num[j]==7)||(num[j]==0))
setChar(1,0);
else
setChar(1,2);
draw();
drawBlank();
}
//forth line
setChar(1,0);
for(int u=0;u<size;u++)
{
System.out.println("");
for(int j=0;j<length;j++)
{
if(num[j]==2)
setChar(2,0);
else
setChar(2,1);
if((num[j]==2)||(num[j]==6)||(num[j]==8)||(num[j]==0))
setChar(0,1);
else
setChar(0,0);
draw();
drawBlank();
}
}
System.out.println("");
//fifth line
setChar(0,0);
setChar(2,0);
for(int j=0;j<length;j++)
{
if((num[j]==1)||(num[j]==4)||(num[j]==7))
setChar(1,0);
else
setChar(1,2);
draw();
drawBlank();
}
System.out.println("");
}
System.out.println("");
break;
}
else
{
lcd[count][1]=m;
lcd[count][2]=n;
count++;
}
}
}
void drawBlank()
{
System.out.print(space);
}
void setChar(int charnum, int chartype)
{
switch(chartype)
{
case 0:
chars[charnum]=space;
break;
case 1:
chars[charnum]='|';
break;
case 2:
chars[charnum]='-';
break;
}
}
void draw()
{
System.out.print(chars[0]);
for(int l=0;l<size;l++)
{
System.out.print(chars[1]);
}
System.out.print(chars[2]);
}
}[/java]
this is my code