每天一个小题目——计算器的新功能
来源:互联网 发布:无缝丝袜淘宝贴吧 编辑:程序博客网 时间:2024/06/05 09:04
题目描述:
当你学一些可视化程序设计语言时,老师经常会让你设计并且编程做出一个计算器,这时也许你会仿照windows系统自带的计算器外观和功能去设计,但是现在老师要你多做出一个有新功能的计算器,实现当输入一个数时,能够将这个数分解成一个或多个素因子乘积的形式,并按素因子的大小排列显示出来。大家对计算器中数的表示应该很清楚的。下面显示出了0 — 9这十个数字的表示形式。每个数字都占据5 * 3大小的字符区域
你能实现这个新功能吗?试试看吧!
代码如下:(代码是拷过来的)
#include <iostream>#include <cstdio>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 printNumToArray(int num) { int tmp = 1; while (num / tmp / 10 != 0) { // 确定 num 即每一个 素因子的位数 tmp *= 10; }; printMultiSign(); // 添加 * 连接 两个素因子 while (tmp != 0) { int t = num / 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] = '\0'; arr[1][pos] = '\0'; arr[2][pos] = '\0'; arr[3][pos] = '\0'; arr[4][pos] = '\0'; pos = 0; cout << arr[0] << endl; cout << arr[1] << endl; cout << arr[2] << endl; cout << arr[3] << endl; cout << arr[4] << endl;}void generate(int num) { for (int i = 2; i <= num;) { if (num % i == 0) { printNumToArray(i); num = num / i; i = 2; } else { ++i; } }}int main(){ int num = 0; while (scanf("%d", &num) != EOF) { generate(num); printArray(); } return 0;}
0 0
- 每天一个小题目——计算器的新功能
- 每天一个小题目——小明的棋盘
- 每天一个小题目——马路上的路灯
- 每天一个小题目——股神
- 每天一个小题目——路灯
- 每天一个小题目——约会
- 每天一个小题目——上台阶
- 每天一个小题目——小赛打车
- 每天一个小题目——翻转数组
- 每天一个小题目——约德尔测试
- 每天一个小题目——学打字
- 每天一个小题目——完美数
- 每天一个小题目——日期倒计时
- 每天一个小题目——公交车乘客
- 每天一个小题目——喷水装置
- 计算器的新功能
- 计算器的新功能
- 一个小的分页计算器
- poj1005 -- I Think I Need a Houseboat
- Java的日期与时间(七)java.util.Calendar和GregorianCalendar
- Matlab-奈奎斯特滤波器实现《一》
- Hello World!
- vue.js 嵌套循环渲染
- 每天一个小题目——计算器的新功能
- 程序员的这108个笑话 都能看懂的技术应该不会太差!
- 拷贝构造函数和赋值运算符有哪些不同点和相同点
- TED如何和压力做朋友(第四天完)
- 旅游问题
- tp的验证码的验证
- BestCoder ::So easy
- centos7下调试集群三台机器实现免密登陆--hadoop安装系列之一
- 【书山有路】SQL必知必会 第10课