360 笔试题 因子计算器的实现
来源:互联网 发布:淘宝上买腾讯视频会员 编辑:程序博客网 时间:2024/05/16 10:33
要求:输入一个数,输出它的因子相乘形式。如10
输出
- -
| |
- * -
| |
- -
笔试的时候不知道是要求把这些都打印出来,还是计算出因子就OK,反正我打印出来了。也没调试完就交卷了。打印出来有点蠢蠢的。
代码如下:
#include<iostream>#include<vector>#include<algorithm>#include<stack>using namespace std;bool isPrime(int n){if(n<=1) return false;if(n==2||n==3||n==5) return true;for(int i=2;i<=n/2;i++){if(n%i==0) return false;}return true;}vector<int> Prime(int n){vector<int> res;if(isPrime(n))res.push_back(n);else{int ttt=n;for(int i=2;i<=n;i++) { if((n%i==0)&&isPrime(i)){ res.push_back(i); n=n/i; i=1;} }}return res;}vector<vector<char>> PrintDigit(int n){vector<vector<char>> ch;vector<char> temp(3,' ');for(int i=0;i<5;i++)ch.push_back(temp); ch[0][0]=' ';ch[0][1]='-';ch[0][2]=' ';ch[1][0]='|';ch[1][1]=' ';ch[1][2]='|';ch[2][0]=' ';ch[2][1]=' ';ch[2][2]=' ';ch[3][0]='|';ch[3][1]=' ';ch[3][2]='|';ch[4][0]=' ';ch[4][1]='-';ch[4][2]=' ';if(n==0){return ch; }else if(n==1){ch[0][0]=' ';ch[0][1]=' ';ch[0][2]=' ';ch[1][0]=' ';ch[1][1]=' ';ch[2][0]=' ';ch[2][1]=' ';ch[2][2]=' ';ch[3][0]=' ';ch[3][1]=' ';ch[4][0]=' ';ch[4][1]=' ';ch[4][2]=' ';}else if(n==2){ch[1][0]=' ';ch[2][1]='-';ch[3][2]=' ';}else if(n==3){ch[1][0]=' ';ch[2][1]='-';ch[3][0]=' ';}else if(n==4){ch[0][1]=' ';ch[2][1]='-';ch[3][0]=' ';ch[4][1]=' ';}else if(n==5){ch[1][2]=' ';ch[2][1]='-';ch[3][0]=' ';}else if(n==6){ch[1][2]=' ';ch[2][1]='-';}else if(n==7){ch[1][0]=' ';ch[3][0]=' ';ch[4][1]=' ';}else if(n==8){ch[2][1]='-';}else if(n==9){ch[2][1]='-';ch[3][0]=' ';}else ;return ch;}void merge(vector<vector<char>>&a,vector<vector<char>>&b,int flag){if(a.size()==0) {a=b;return;}if(flag==1){ for(int i=0;i<5;i++){for(int j=0;j<3;j++)a[i].push_back(b[i][j]);}}else{ for(int i=0;i<5;i++) {for(int j=0;j<1;j++){if(i==2) a[i].push_back('*');elsea[i].push_back(' ');} }}}void Print(vector<int>prime){//sort(prime.begin(),prime.end());vector<vector<char>> res;for(int i=0;i<prime.size();i++){int cur=prime[i];stack<int> bit_w;while(cur){bit_w.push(cur%10);cur/=10;}vector<vector<char>> bit_ch;while(!bit_w.empty()){int temp=bit_w.top();bit_w.pop();bit_ch=PrintDigit(temp);merge(res,bit_ch,1);}if(i!=prime.size()-1)merge(res,bit_ch,0);}for(int i=0;i<5;i++){for(int j=0;j<res[i].size();j++)cout<<res[i][j];cout<<endl;}}void main(){int n;cin>>n;while(n){if(n<0)break;vector<int> pr=Prime(n); Print(pr); cin>>n;}}
0 0
- 360 笔试题 因子计算器的实现
- 360笔试题————计算器格式输出一个数的素因子乘积
- 腾讯实习笔试题--简单计算器程序的c语言实现
- 360今年笔试题之一:整数分解为素因子,并用用九字段数字表示出来的代码
- 【C语言】【面试题】【笔试题】使用main函数实现一个整数计算器!
- 计算器的实现
- 关于计算器的实现
- 递归实现的计算器
- java实现的计算器
- 计算器退格键的实现
- 简单的计算器实现
- 简易计算器的实现
- 简单计算器的实现
- 计算器的实现
- 简单计算器的实现
- JavaBean计算器的实现
- 计算器的实现代码
- 计算器的实现
- cordova 资料
- nginx利用proxy_cache来缓存文件
- 员工管理系统(ArrayList)
- linx基础学习
- TA技术规范文档
- 360 笔试题 因子计算器的实现
- zoj 3898 Stean 高等数学 数值积分
- 宝石商人(2016网易游戏校招笔试)
- Windows TTS语音引擎VC编程入门
- 安卓开发笔记 通过AlertDialog实现从底部弹出的菜单的代码编写
- 333 mdd的烦恼【欧拉函数】
- CString与char *转换
- 将studio项目 转换为eclipse项目
- samba不允许一个用户使用一个以上用户名与一个服务器或共享资源