zoukankan      html  css  js  c++  java
  • 计算器的新功能


    当你学一些可视化程序设计语言时,老师经常会让你设计并且编程做出一个计算器,这时也许你会仿照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();
        }
    }
  • 相关阅读:
    EPUB书籍阅读器插件分享
    网页端压缩解压缩插件JSZIP库的使用
    让编辑器支持word的复制黏贴,支持截屏的黏贴
    MYSQL GTID position
    Google SRE
    MySQL大小写敏感
    SpringMVC model 多余字段 忽略
    To B Vs To C
    滴滴 CTO 架构师 业务 技术 战役 时间 赛跑 超前 设计
    Spring Boot 集成Swagger
  • 原文地址:https://www.cnblogs.com/home123/p/6763228.html
Copyright © 2011-2022 走看看