fork download
  1. import java.io.*;
  2. import java.util.*;
  3.  
  4.  
  5. class Cyberforum {
  6.  
  7. //_out - выходной поток, ch - символ печати, size - размер символа, snum - число в строке
  8. public static void output_digits(PrintStream _out, char ch, int size, String snum) throws Exception {
  9. boolean p;
  10. size = Math.max(size, 5);
  11. if((size % 2) == 0)
  12. size += 1;
  13.  
  14. int m = size / 2;
  15. for(int j = 0; j < size; ++j){
  16. for (int s = 0; s < snum.length(); ++s){
  17. for (int i = 0; i < size; ++i){
  18. switch(snum.charAt(s)){
  19. case '0':
  20. p = (j == 0 || j == size - 1 || i == 0 || i == size - 1);
  21. break;
  22. case '1':
  23. p = (i == size - 1);
  24. break;
  25. case '2':
  26. p = (j == 0 || j == size - 1 || j == m || (i == size - 1 && j < m) || (i == 0 && j > m));
  27. break;
  28. case '3':
  29. p = (j == 0 || j == size - 1 || j == m || i == size - 1);
  30. break;
  31. case '4':
  32. p = ((i == 0 && j < m) || (i == size - 1) || j == m);
  33. break;
  34. case '5':
  35. p = (j == 0 || (j == size - 1) || j == m || (i == 0 && j < m) || (i == size - 1 && j > m));
  36. break;
  37. case '6':
  38. p = (j == 0 || (j == size - 1) || j == m || i == 0 || (i == size - 1 && j > m));
  39. break;
  40. case '7':
  41. p = (j == 0 || (i == size - 1));
  42. break;
  43. case '8':
  44. p = (j == 0 || j == size - 1 || i == 0 || i == size - 1 || j == m);
  45. break;
  46. case '9':
  47. p = (j == 0 || j == size - 1 || (i == 0 && j < m) || i == size - 1 || j == m);
  48. break;
  49. default:
  50. p = false;
  51. break;
  52. }
  53. _out.print(p ? ch : ' ');
  54. }
  55. _out.print(' ');
  56. }
  57. _out.println();
  58. }
  59. _out.println();
  60. _out.flush();
  61. }
  62.  
  63. public static void main(String[] args) throws Exception {
  64. output_digits(System.out, 'O', 5, "1234567890");
  65. output_digits(System.out, '#', 7, "1234567");
  66. output_digits(System.out, 'X', 9, "2012");
  67. output_digits(System.out, '@', 11, "89");
  68. /*
  69.   печать в файл
  70.   PrintStream fp = new PrintStream("digits.txt");
  71.   output_digits(fp, '@', 11, "1234567890");
  72.   fp.close();
  73. */
  74. }
  75. }
  76.  
Success #stdin #stdout 0.15s 320704KB
stdin
Standard input is empty
stdout
    O OOOOO OOOOO O   O OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO 
    O     O     O O   O O     O         O O   O O   O O   O 
    O OOOOO OOOOO OOOOO OOOOO OOOOO     O OOOOO OOOOO O   O 
    O O         O     O     O O   O     O O   O     O O   O 
    O OOOOO OOOOO     O OOOOO OOOOO     O OOOOO OOOOO OOOOO 

      # ####### ####### #     # ####### ####### ####### 
      #       #       # #     # #       #             # 
      #       #       # #     # #       #             # 
      # ####### ####### ####### ####### #######       # 
      # #             #       #       # #     #       # 
      # #             #       #       # #     #       # 
      # ####### #######       # ####### #######       # 

XXXXXXXXX XXXXXXXXX         X XXXXXXXXX 
        X X       X         X         X 
        X X       X         X         X 
        X X       X         X         X 
XXXXXXXXX X       X         X XXXXXXXXX 
X         X       X         X X         
X         X       X         X X         
X         X       X         X X         
XXXXXXXXX XXXXXXXXX         X XXXXXXXXX 

@@@@@@@@@@@ @@@@@@@@@@@ 
@         @ @         @ 
@         @ @         @ 
@         @ @         @ 
@         @ @         @ 
@@@@@@@@@@@ @@@@@@@@@@@ 
@         @           @ 
@         @           @ 
@         @           @ 
@         @           @ 
@@@@@@@@@@@ @@@@@@@@@@@