XX公司在线笔试题编程题之一
题目:
#include <iostream>
#include <vector>
#include <string>
#include <list>
#define N 1000005
using namespace std; bool prime[N]={0};
vector<int> ps; // 存放1到N内所有素数 void fenjie(vector<int> & suyinzi, int x){ // 素因子分解
for(int i=0;i<ps.size();i++){
while(x % ps[i] ==0){
suyinzi.push_back(ps[i]);
x /=ps[i];
}
} } char str[5][31]={
"*-*****-**-*****-**-**-**-**-*",
"|*|*|***|**||*||**|****||*||*|",
"*******-**-**-**-**-*****-**-*",
"|*|*|*|****|**|**||*|**||*|**|",
"*-*****-**-*****-**-*****-**-*"
};
char print[5][4*1000]={0}; // 打印缓冲区 void set(int col, char ch){ //从col列开始设置要显示的字符
if(ch == '*'){
for(int i=0;i<5;i++) print[i][col] = ' ';
print[2][col] = '*';
return;
}
for(int i =0;i<5;i++)
for(int j=0;j<3;j++){
char temp=str[i][(ch-'0')*3 + j];
print[i][col+j] = temp == '*' ? ' ' : temp;
} }
void set(int col, string str){ ///从第col列开始,设置要显示的字符串
set(col,'*');
col ++;
for(int i=0;i<str.size();i++){
set(col,str[i]);
col += 3;
} }
string convert(int x){ //将整数转为字符串
list<char> li;
while(x!=0){
li.push_front(x%10 + '0');
x /= 10;
}
string str(li.begin(),li.end());
return str; }
int main()
{
for(int i=2;i<1000;i++){
if(prime[i]) {
continue;
}
for(int j=i+i;j<N;j+=i)
prime[j] =1;
}
for(int i =2;i< N;i++ ) if(!prime[i]) ps.push_back(i);
int x;
while(cin >> x){
vector<int> suyinzi;
vector<string> vstr;
fenjie(suyinzi,x);
for(int i=0;i<suyinzi.size();i++){
vstr.push_back(convert(suyinzi[i]));
} int count = suyinzi.size(),col=0;
::memset(print, 0,sizeof(print));
for(int i=0;i<vstr.size();i++){
set(col,vstr[i]);
col += vstr[i].size()*3+1;
} for(int i=0;i<5;i++){
for(int j=1;j<col;j++)
cout << print[i][j];
cout << endl;
} }
return 0;
}
XX公司在线笔试题编程题之一的更多相关文章
- 2016年4月21百度iOS实习生在线笔试题&编程题
1.一个人上台阶可以一次上1个,2个,或者3个,问这个人上32层的台阶,总共有几种走法? 思路:先建立数学模型,设3步的走 i 次,2步的走 j 次, 1步的走 k 次,上了3*i + 2*j + 1 ...
- 剑指Offer——网易校招内推笔试题+模拟题知识点总结
剑指Offer--网易校招内推笔试题+模拟题知识点总结 前言 2016.8.2 19:00网易校招内推笔试开始进行.前天晚上利用大约1小时时间完成了测评(这个必须做,关切到你能否参与面试).上午利用2 ...
- 2018春招-今日头条笔试题-第二题(python)
题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 利用深度优先搜索 #-*- coding:utf-8 -*- class DFS: ''' num:用于存储最后执行次 ...
- 2018春招-今日头条笔试题-第一题(python)
题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 要想得到输入的数字列中存在相隔为k的数,可以将输入的数字加上k,然后判断其在不在输入的数字列中即可. #-*- cod ...
- ThoughtWorks西邮暑期特训营 -- JavaScript在线笔试题
ThoughtWorks 公司在西邮正式开办的只教女生前端开发的女子卓越实验室已经几个月过去了,这次计划于暑期在西邮内部开展面向所有性别所有专业的前端培训. 具体官方安排请戳:ThoughtWorks ...
- 小议 - 来自《XX时代XX公司》的笔试编程题目
经过几天的雾霾,魔都终于放晴了.哥投了几天的简历,希望找到一份.NET开发方面的岗位.也收到了几个面试邀请.这不应Ge老师的要求,选了个良辰吉日,带着身份证,学位证怀揣着2B青年的梦想来这个XX公司面 ...
- 2014阿里巴巴WEB前端实习生在线笔试题
2014年3月31日晚,我怀着稍微忐忑的心情(第一次在线笔试^_^!!)进行了笔试.阿里巴巴的笔试题共同拥有10道,差点儿包括了Web前端开发的各个方面,有程序题.有叙述题.时间很紧张,仅仅完毕了大概 ...
- 2017百度web前端实习生在线笔试题
代码: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s ...
- 2015网易校招Java开发工程师(技术架构)在线笔试题
1. 程序和进程的本质区别是? A.在外存和内存存储 B.非顺序和顺序执行机器指令 C.独占使用和分时使用计算机资源 D.静态和动态特征 参考答案分析: 进程与应用程序的区别: 进程(Process ...
随机推荐
- [转] Adobe acrobat 破解教程
最新版的Adobe Acrobat DC Pro可以使我们更方便的管理和编辑PDF文档,现在我为大家带来Adobe Acrobat DC Pro安装及破解教程,供大家安装和使用. 工具/原料 Ad ...
- 制作centos安装u盘
格式化 mkfs.vfat /dev/sdb1 制作 dd if=CentOS-7-x86_64-Minimal-1503-01.iso of=/dev/sdb # 1. 注意是/dev/sdb 不是 ...
- WebAPI项目添加定时服务
开发平台: VS2019 背景: 在开发小程序的API服务的时候,由于access_token的有效期为7200秒,也就是2小时,这就需要后端定时的去更新这个access_token,便于调用小程序的 ...
- pat乙级1059
1.c++ 位数不够前面补零: printf("04d", i); 位数不够前面补空格(右对齐): printf("4d", i); 位数不够后面补空格(左对齐 ...
- TFS看板规则
就绪板列 准入条件 需求已完成交付 需求交付过程中的问题已全部解决 当前迭代需求所产生的BUG必须放入该列 之前迭代遗留的BUG 工作内容 需求实现概要设计 BUG确认 任务拆分 任务工作量估算(单位 ...
- JS中的Global对象
Global对象可以说是ECMAScript中最特别的一个对象了.因为不管你从什么角度上看,这个对象都是不存在的.ECMAScript中的Global对象在某种意义上是作为一个终极的“兜底儿对象”来定 ...
- [VC]strcpy memcpy memset区别与简介
strcpy 原型:extern char *strcpy(char *dest,char *src); 用法:#include <string.h> 功能:把src所指由NULL结束的字 ...
- Mybatis-连接池与事务
Mybatis 的连接池技术 Mybatis 将它自己的数据源分为三类: UNPOOLED 不使用连接池的数据源 POOLED 使用连接池的数据源 JNDI 使用 JNDI 实现的数据源 Mybati ...
- Python实现注册和登录
一.注册账号需要实现的功能 1.输入:用户名,密码,密码确认 2.限制1:输入的账号和密码不能为空 3.限制2:两次输入密码必须一致 4.限制3:用户名不能重复 5.限制4:错误次数为4次 6.用字典 ...
- JS let和const关键字
ES2015 引入了两个重要的 JavaScript 新关键词:let 和 const. Let关键字 1.用于作用域:块作用域,循环作用域,函数作用域,全局作用域, 在 ES2015 之前,Java ...