• UVa 706 & ZOJ 1146 LC-Display


      题目大意:给你一个数字n和字体大小s,输出数字的液晶显示。直接模拟,代码如下:

     1 #include <stdio.h>
     2 void draw(int n,int s,int row)
     3 {
     4     int i;
     5     if(row==1)
     6     {
     7         printf(" ");
     8         if(n==2||n==3||(n>=5&&n<=9)||n==0)
     9             for(i=0;i<s;i++)
    10                 printf("-");
    11         else for(i=0;i<s;i++)
    12                 printf(" ");
    13         printf(" ");
    14     }
    15     else if(2<=row&&row<=s+1)
    16     {
    17         if(n==0||(4<=n&&n<=6)||n==8||n==9||n==0)
    18             printf("|");
    19         else printf(" ");
    20         for(i=0;i<s;i++)
    21             printf(" ");
    22         if((1<=n&&n<=4)||(7<=n&&n<=9)||n==0)
    23             printf("|");
    24         else printf(" ");
    25     }
    26     else if(row==s+2)
    27     {
    28         printf(" ");
    29         if((2<=n&&n<=6)||n==8||n==9)
    30             for(i=0;i<s;i++)
    31                 printf("-");
    32         else for(i=0;i<s;i++)
    33                 printf(" ");
    34         printf(" ");
    35     }
    36     else if(s+3<=row&&row<=2*s+2)
    37     {
    38         if(n==2||n==6||n==8||n==0)
    39             printf("|");
    40         else printf(" ");
    41         for(i=0;i<s;i++)
    42             printf(" ");
    43         if(n==1||(3<=n&&n<=9)||n==0)
    44             printf("|");
    45         else printf(" ");
    46     }
    47     else if(row==2*s+3)
    48     {
    49         printf(" ");
    50         if(n==2||n==3||n==5||n==6||n==8||n==9||n==0)
    51             for(i=0;i<s;i++)
    52                 printf("-");
    53         else for(i=0;i<s;i++)
    54                 printf(" ");
    55         printf(" ");
    56     }
    57 }
    58 
    59 int main()
    60 {
    61     int s,n,p,k,i,j;
    62     int digit[10];
    63     while(scanf("%d%d",&s,&n)!=EOF)
    64     {
    65         if(s==0&&n==0) break;
    66         if(n)
    67         {
    68             p=0;
    69             while(n)
    70             {
    71                 digit[p++]=n%10;
    72                 n/=10;
    73             }
    74             k=p;
    75         }
    76         else
    77         {
    78             digit[0]=0;
    79             k=1;
    80         }
    81         for(i=1;i<=2*s+3;i++)
    82         {
    83             draw(digit[k-1],s,i);
    84             for(j=k-2;j>=0;j--)
    85             {
    86                 printf(" ");
    87                 draw(digit[j],s,i);
    88             }
    89             printf("
    ");
    90         }
    91         printf("
    ");
    92     }
    93     return 0;
    94 }
    View Code
  • 相关阅读:
    机器学习-正则化方法
    机器学习-回归算法
    机器学习算法一
    机器学习概览
    tensorflow机器学习初接触
    tensorflow决策树初接触
    tensorflow语法
    tensorflow第一个例子简单实用
    Hyperledger Fabric 1.0架构入门
    结合《XXXX需求征集系统》分析可用性和可修改性战术
  • 原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3169851.html
Copyright © 2020-2023  润新知