LC-Display

LC-Display

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 20000/10000K (Java/Other)
Total Submission(s) : 11   Accepted Submission(s) : 4
Problem Description
A friend of you has just bought a new computer. Until now, the most powerful computer he ever used has been a pocket calculator. Now, looking at his new computer, he is a bit disappointed, because he liked the LC-display of his calculator so much. So you decide to write a program that displays numbers in an LC-display-like style on his computer.

Input
The input contains several lines, one for each number to be displayed. Each line contains two integers s, n (1 <= s <= 10, 0 <= n <= 99 999 999), where n is the number to be displayed and s is the size in which it shall be displayed.
The input file will be terminated by a line containing two zeros. This line should not be processed.
 
Output
Output the numbers given in the input file in an LC-display-style using s "-" signs for the horizontal segments and s "|" signs for the vertical ones. Each digit occupies exactly s+2 columns and 2s+3 rows. (Be sure to fill all the white space occupied by the digits with blanks, also for the last digit.) There has to be exactly one column of blanks between two digits.
Output a blank line after each number. (You will find a sample of each digit in the sample output.)
 
Sample Input
2 12345 3 67890 0 0
 
Sample Output
-- -- -- | | | | | | | | | | | | -- -- -- -- | | | | | | | | | | -- -- -- --- --- --- --- --- | | | | | | | | | | | | | | | | | | | | | | | | --- --- --- | | | | | | | | | | | | | | | | | | | | | | | | --- --- --- ---
模拟即可,三重循环+判断
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char num[100000000];
int digit[100000000];
int main()
{
    int n,i,j,k,m,l,q,p;

    int ns[10][5][3] =
    {
        {0,1,0, 1,0,1, 0,0,0, 1,0,1, 0,1,0},
        {0,0,0, 0,0,1, 0,0,0, 0,0,1, 0,0,0},
        {0,1,0, 0,0,1, 0,1,0, 1,0,0, 0,1,0},
        {0,1,0, 0,0,1, 0,1,0, 0,0,1, 0,1,0},
        {0,0,0, 1,0,1, 0,1,0, 0,0,1, 0,0,0},
        {0,1,0, 1,0,0, 0,1,0, 0,0,1, 0,1,0},
        {0,1,0, 1,0,0, 0,1,0, 1,0,1, 0,1,0},
        {0,1,0, 0,0,1, 0,0,0, 0,0,1, 0,0,0},
        {0,1,0, 1,0,1, 0,1,0, 1,0,1, 0,1,0},
        {0,1,0, 1,0,1, 0,1,0, 0,0,1, 0,1,0}
    };
    while(1)
    {
        scanf("%d\n",&n);
        scanf("%s",num);
        m=strlen(num);
        for(i=0; i<m; i++)
        {
            digit[i]=num[i]-48;
        }
        if(n==0&&num[0]=='0')
            return 0;
        for(i=0; i<5; i++)
        {
            if(i==0||i==4||i==2)
            {
                for(j=0; j<m; j++)
                {
                    for(k=0; k<3; k++)
                    {
                        {
                            if(k==0)
                                printf(" ");
                            else if(k==2)
                                printf("  ");
                            else
                            {
                                for(l=0; l<n; l++)
                                {
                                    if(ns[digit[j]][i][k]==1)
                                        printf("-");
                                    else
                                        printf(" ");
                                }
                            }
                        }
                    }
                }
                printf("\n");
            }
            else
            {
                for(q=0; q<n; q++)
                {
                    for(j=0; j<m; j++)
                    {
                        for(k=0; k<3; k++)
                        {
                            if(k==0)
                            {
                                if(ns[digit[j]][i][k]==1)
                                    printf("|");
                                else
                                    printf(" ");
                            }
                            else if(k==2)
                            {
                                if(ns[digit[j]][i][k]==1)
                                    printf("| ");
                                else
                                    printf("  ");
                            }
                            else
                            {
                                for(p=0; p<n; p++)
                                {
                                    printf(" ");
                                }
                            }
                        }
                    }
                    printf("\n");
                }
            }
        }
        printf("\n");
    }
    return 0;
}
标题基于Python的自主学习系统后端设计与实现AI更换标题第1章引言介绍自主学习系统的研究背景、意义、现状以及本文的研究方法和创新点。1.1研究背景与意义阐述自主学习系统在教育技术领域的重要性和应用价值。1.2国内外研究现状分析国内外在自主学习系统后端技术方面的研究进展。1.3研究方法与创新点概述本文采用Python技术栈的设计方法和系统创新点。第2章相关理论与技术总结自主学习系统后端开发的相关理论和技术基础。2.1自主学习系统理论阐述自主学习系统的定义、特征和理论基础。2.2Python后端技术栈介绍DjangoFlask等Python后端框架及其适用场景。2.3数据库技术讨论关系型和非关系型数据库在系统中的应用方案。第3章系统设计与实现详细介绍自主学习系统后端的设计方案和实现过程。3.1系统架构设计提出基于微服务的系统架构设计方案。3.2核心模块设计详细说明用户管理、学习资源管理、进度跟踪等核心模块设计。3.3关键技术实现阐述个性化推荐算法、学习行为分析等关键技术的实现。第4章系统测试与评估对系统进行功能测试和性能评估。4.1测试环境与方法介绍测试环境配置和采用的测试方法。4.2功能测试结果展示各功能模块的测试结果和问题修复情况。4.3性能评估分析分析系统在高并发等场景下的性能表现。第5章结论与展望总结研究成果并提出未来改进方向。5.1研究结论概括系统设计的主要成果和技术创新。5.2未来展望指出系统局限性并提出后续优化方向。
LC-3(Little Computer 3)是一种用于教学目的的汇编语言和计算机体系结构。设计一个基于LC-3的电子闹钟可以帮助学生理解计算机的基本原理和汇编语言编程。以下是一个简单的LC-3电子闹钟设计介绍: ### 1. 系统概述 电子闹钟的基本功能包括显示当前时间、设置闹钟时间、计时和闹钟响铃。LC-3计算机通过输入设备(如键盘)和输出设备(如LCD显示屏)进行交互。 ### 2. 硬件组成 - **LC-3处理器**:负责执行指令和控制其他组件。 - **内存**:存储程序和数据。 - **输入设备**:如键盘,用于设置时间和闹钟。 - **输出设备**:如LCD显示屏,用于显示时间和闹钟信息。 - **蜂鸣器**:用于发出闹钟响铃。 ### 3. 软件设计 #### 3.1 主程序流程 1. **初始化**:设置初始时间和闹钟时间。 2. **显示时间**:不断更新显示当前时间。 3. **检查闹钟**:比较当前时间与闹钟时间,如果匹配则触发蜂鸣器。 4. **处理用户输入**:允许用户设置时间和闹钟时间。 #### 3.2 主要功能模块 - **时间显示模块**:负责在LCD显示屏上显示当前时间。 - **时间设置模块**:处理用户输入,设置当前时间和闹钟时间。 - **闹钟触发模块**:比较当前时间与闹钟时间,触发蜂鸣器。 ### 4. 示例代码 以下是一个简单的LC-3汇编代码示例,用于显示当前时间和设置闹钟时间: ```assembly .ORIG x3000 ; 初始化 LD R0, CURRENT_TIME LD R1, ALARM_TIME ; 主循环 LOOP: ; 显示当前时间 JSR DISPLAY_TIME ; 检查闹钟 JSR CHECK_ALARM ; 处理用户输入 JSR HANDLE_INPUT ; 延时 JSR DELAY BRnzp LOOP ; 子程序:显示时间 DISPLAY_TIME: ; 代码实现 RET ; 子程序:检查闹钟 CHECK_ALARM: ; 代码实现 RET ; 子程序:处理用户输入 HANDLE_INPUT: ; 代码实现 RET ; 子程序:延时 DELAY: ; 代码实现 RET ; 数据存储 CURRENT_TIME .FILL x0000 ALARM_TIME .FILL x0000 .END ``` ### 5. 总结 通过设计一个基于LC-3的电子闹钟,学生可以深入理解计算机体系结构和汇编语言编程的基本原理。该设计包括硬件组成、软件流程和主要功能模块的实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值