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;
}

  

时间: 2024-12-29 09:06:38

XX公司在线笔试题编程题之一的相关文章

大众点评笔试题编程题

用最快的方法判断所有string2的字母在string1中是否存在,如:string2="abx",string1="abcdef",ab在string1中,x不存在 提交试卷时间还没到,嘿嘿嘿嘿,不能提交,等着考完再提交吧 #include <stdio.h> #include <stdlib.h> int convert(char *str) { int A=0; char s; int pos=0; while(*str!='\0')

2014年阿里巴巴在线笔试题-第3大题-公共最长字符串长度

说明 2014年阿里巴巴在线笔试题-第3大题    首先,我没参加这次的阿里巴巴在线笔试题,题目全部是从别人口中描述而来,对于以下的分析,如果有什么不对的地方还望指教.也希望大家能够有更好的办法,希望大家来能不吝赐教. 题目描述 给定一个主字符串和一个匹配字符串,现在问你,找出 "主串中可匹配到的匹配串中子串的最大长度",可能比较绕,举个例子吧 主字符串       abcdefgsdff     记为A 匹配字符串   abefgf               记为B 要求的值就是 

2015年阿里巴巴校招研发工程师在线笔试题汇总

在线笔试题汇总 卷一: 1.下面的函数中哪个是系统调用而不是库函数______? printf scanf fgetc read print_s scan_s 2.某足球队有四名外援,分别来自巴西.荷兰.意大利和美国.他们分别擅长前锋.后卫或守门,其中: ① 美国外援单独擅长守门: ② 意大利外援不擅长前锋: ③ 巴西外援和另外某个外援擅长相同的位置: ④ 荷兰外援擅长的位置和巴西外援不同. 以上条件可以推出巴西外援擅长的位置是______. 前锋 守门 后卫 前锋或守门 后卫或守门 前锋或后卫

2014阿里巴巴WEB前端实习生在线笔试题

2014年3月31日晚,我怀着略微忐忑的心情(第一次在线笔试^_^!!)进行了笔试,阿里巴巴的笔试题共有10道,几乎包含了Web前端开发的各个方面,有程序题.有叙述题,时间非常紧张,只完成了大概6道题.下面把遇到的题目跟大家分享一下! 1. <pre name="code" class="html"><!doctype html> <html> <head> <style type="text/css&

48行代码解一道亚马逊的在线笔试题

这题是我从这里看到的一道亚马逊的在线笔试题,具体规则请前往该文章查看,下面贴出我的解题代码: 其中11,12,13,14分别代表J,Q,K,A; class CardCompare { private int[] cards = new int[] { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; public bool CompareCards(int[] cards1, int[] cards2) { return cardsScore(card

2015阿里巴巴前端实习生在线笔试题

Summary 大公司开始招实习生了,我也变成过来人了,品味到之前的酸甜苦辣,除了加油好像也没法说那么多. 因为是你在奋斗,心态这件事是你们在掌握的.但是我们唯一能提供的是我们topview实验室新鲜出炉的面经和笔试. (其实我在想有没应届生春招 - -!) Where 2015阿里巴巴前端实习生在线笔试题

google 2014在线笔试题

1.个人做google在线笔试题感觉时间很紧,笔试时间只做出来了一个题目就是第二道题,这第一道题是当天晚上才做出来的...突然感觉自己很水... 个人解决方案需要解决如下子问题 1)判断一个具有坏灯管的数字灯是否显示的是某个数字 2)判断一串灯管显示的是否是以某个数字为首递减的一串数字 3)检查一串匹配正确数字的灯管中坏掉的灯管是哪些 4)输出显示一串正确递减数字的灯管 4)输出显示一串有坏灯管的来显示数字的灯管 #include<iostream> #include <map>

2015微软实习在线笔试题 - Professor Q&#39;s Software

时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Professor Q develops a new software. The software consists of N modules which are numbered from 1 to N. The i-th module will be started up by signal Si. If signal Si is generated multiple times, the i-th module

2015.8.29某高级企业的在线笔试题

收集了今年阿里的在线笔试题,贴出来供需要的朋友参考. 1.下面的函数中哪个是系统调用而不是库函数______?printfscanffgetcreadprint_sscan_s 2.某足球队有四名外援,分别来自巴西.荷兰.意大利和美国.他们分别擅长前锋.后卫或守门,其中:① 美国外援单独擅长守门:② 意大利外援不擅长前锋:③ 巴西外援和另外某个外援擅长相同的位置:④ 荷兰外援擅长的位置和巴西外援不同.以上条件可以推出巴西外援擅长的位置是______.前锋守门后卫前锋或守门后卫或守门前锋或后卫 3