• 计算器的新功能



    当你学一些可视化程序设计语言时,老师经常会让你设计并且编程做出一个计算器,这时也许你会仿照windows系统自带的计算器外观和功能去设计,但是现在老师要你多做出一个有新功能的计算器,实现当输入一个数时,能够将这个数分解成一个或多个素因子乘积的形式,并按素因子的大小排列显示出来。大家对计算器中数的表示应该很清楚的。下面显示出了0 — 9这十个数字的表示形式。每个数字都占据5 * 3大小的字符区域


    你能实现这个新功能吗?试试看吧!

    输入

     

    输入有多组测试数据,每组包括一个正整数n(1 < n <= 1000000)。

    样例输入

     

    10

    2

    输出

     

    对于每个数,将它分解成若干个素数乘积的形式,并按从小到大的顺序输出,素因子之间用“ * ”的形式连接。

    样例输出

     

     -     -

      |   |

     -  *  -

    |       |

     -     -

     -

      |

     -

    |

     -

    时间限制C/C++语言:1000MS其它语言:3000MS
    内存限制
    C/C++语言:65536KB其它语言:589824KB
    #include<iostream>
    #include<stdio.h>
    using namespace std;
    
    char arr[5][1000];
    int pos = 0;
    
    void printMultiSign() {
        if (pos != 0) {
            arr[0][pos] = ' ';
            arr[1][pos] = ' ';
            arr[2][pos] = '*';
            arr[3][pos] = ' ';
            arr[4][pos++] = ' ';
        }
    }
    
    void NumToArray(int i)
    {
        int tmp = 1;
        while (i / tmp / 10 != 0) { //需要从首位开始输出
            tmp *= 10;
        };
        printMultiSign();
    
        while (tmp != 0) {
            int t = i / tmp % 10;
            tmp = tmp / 10;
            switch (t) {
            case 0 :
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = '|';
                arr[4][pos++] = ' ';
    
                arr[0][pos] = '-';
                arr[1][pos] = ' ';
                arr[2][pos] = ' ';
                arr[3][pos] = ' ';
                arr[4][pos++] = '-';
    
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = '|';
                arr[4][pos++] = ' ';
                break;
            case 1 :
                arr[0][pos] = ' ';
                arr[1][pos] = ' ';
                arr[2][pos] = ' ';
                arr[3][pos] = ' ';
                arr[4][pos++] = ' ';
    
                arr[0][pos] = ' ';
                arr[1][pos] = ' ';
                arr[2][pos] = ' ';
                arr[3][pos] = ' ';
                arr[4][pos++] = ' ';
    
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = '|';
                arr[4][pos++] = ' ';
                break;
            case 2 :
                arr[0][pos] = ' ';
                arr[1][pos] = ' ';
                arr[2][pos] = ' ';
                arr[3][pos] = '|';
                arr[4][pos++] = ' ';
    
                arr[0][pos] = '-';
                arr[1][pos] = ' ';
                arr[2][pos] = '-';
                arr[3][pos] = ' ';
                arr[4][pos++] = '-';
    
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = ' ';
                arr[4][pos++] = ' ';
                break;
            case 3 :
                arr[0][pos] = ' ';
                arr[1][pos] = ' ';
                arr[2][pos] = ' ';
                arr[3][pos] = ' ';
                arr[4][pos++] = ' ';
    
                arr[0][pos] = '-';
                arr[1][pos] = ' ';
                arr[2][pos] = '-';
                arr[3][pos] = ' ';
                arr[4][pos++] = '-';
    
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = '|';
                arr[4][pos++] = ' ';
                break;
            case 4 :
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = ' ';
                arr[4][pos++] = ' ';
    
                arr[0][pos] = ' ';
                arr[1][pos] = ' ';
                arr[2][pos] = '-';
                arr[3][pos] = ' ';
                arr[4][pos++] = ' ';
    
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = '|';
                arr[4][pos++] = ' ';
                break;
            case 5 :
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = ' ';
                arr[4][pos++] = ' ';
    
                arr[0][pos] = '-';
                arr[1][pos] = ' ';
                arr[2][pos] = '-';
                arr[3][pos] = ' ';
                arr[4][pos++] = '-';
    
                arr[0][pos] = ' ';
                arr[1][pos] = ' ';
                arr[2][pos] = ' ';
                arr[3][pos] = '|';
                arr[4][pos++] = ' ';
                break;
            case 6 :
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = '|';
                arr[4][pos++] = ' ';
    
                arr[0][pos] = '-';
                arr[1][pos] = ' ';
                arr[2][pos] = '-';
                arr[3][pos] = ' ';
                arr[4][pos++] = '-';
    
                arr[0][pos] = ' ';
                arr[1][pos] = ' ';
                arr[2][pos] = ' ';
                arr[3][pos] = '|';
                arr[4][pos++] = ' ';
                break;
            case 7 :
                arr[0][pos] = ' ';
                arr[1][pos] = ' ';
                arr[2][pos] = ' ';
                arr[3][pos] = ' ';
                arr[4][pos++] = ' ';
    
                arr[0][pos] = '-';
                arr[1][pos] = ' ';
                arr[2][pos] = ' ';
                arr[3][pos] = ' ';
                arr[4][pos++] = ' ';
    
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = '|';
                arr[4][pos++] = ' ';
                break;
            case 8 :
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = '|';
                arr[4][pos++] = ' ';
    
                arr[0][pos] = '-';
                arr[1][pos] = ' ';
                arr[2][pos] = '-';
                arr[3][pos] = ' ';
                arr[4][pos++] = '-';
    
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = '|';
                arr[4][pos++] = ' ';
                break;
            case 9 :
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = ' ';
                arr[4][pos++] = ' ';
    
                arr[0][pos] = '-';
                arr[1][pos] = ' ';
                arr[2][pos] = '-';
                arr[3][pos] = ' ';
                arr[4][pos++] = '-';
    
                arr[0][pos] = ' ';
                arr[1][pos] = '|';
                arr[2][pos] = ' ';
                arr[3][pos] = '|';
                arr[4][pos++] = ' ';
                break;
            }
        }
    }
    
    void printArray() {
        arr[0][pos] = '';
        arr[1][pos] = '';
        arr[2][pos] = '';
        arr[3][pos] = '';
        arr[4][pos] = '';
        pos = 0;
        cout << arr[0] << endl;
        cout << arr[1] << endl;
        cout << arr[2] << endl;
        cout << arr[3] << endl;
        cout << arr[4] << endl;
    }
    
    void sushu(int num)
    {
        int i;
        for(i=2;i<num;)
        {
            if(num%i==0)
            {
                NumToArray(i);
                num=num/i;
                i=2;
            }
            else
                i++;
        }
        NumToArray(i);
    }
    
    int main()
    {
        int num;
        while(cin>>num)
        {
            sushu(num);
            printArray();
        }
    }
  • 相关阅读:
    2019-2020-1 20199311《Linux内核原理与分析》第五周作业
    2019-2020-1 20199311《Linux内核原理与分析》第四周作业
    2019-2020-1 20199311《Linux内核原理与分析》第三周作业
    2019-2020-1 20199311《Linux内核原理与分析》第二周作业
    2019-2020-1 20199311《Linux内核原理与分析》第一周作业
    Markdown写随笔
    ELK:日常维护系列(1)
    nginx和appache ssl配置区别
    azure制作centos7镜像必须步骤
    vue生成gzip压缩包部署到nginx
  • 原文地址:https://www.cnblogs.com/home123/p/6763228.html
Copyright © 2020-2023  润新知