360公司2016校园招聘笔试题大题一
来源:互联网 发布:cms监控软件手机版设置 编辑:程序博客网 时间:2024/04/30 01:15
题意
大概是说,输入多行,每行一个数,然后分解成素数相乘的形式,并以7段数码管的显示方式打印。
示例
注意点
分解的时候,可能有超过9的素数因子,比如13,需要转换成1和3进行打印
代码
import java.io.*;import java.util.*;public class Main { static char[][] numbers = { {' ', ' ','-',' ', ' ',' ',' ', ' ','-',' ', ' ','-',' ', ' ',' ',' ', ' ','-',' ', ' ','-',' ', ' ','-',' ', ' ','-',' ', ' ','-',' '}, {' ', '|',' ','|', ' ','|',' ', ' ',' ','|', ' ',' ','|', '|',' ','|', '|',' ',' ', '|',' ',' ', ' ',' ','|', '|',' ','|', '|',' ','|'}, {'*', ' ',' ',' ', ' ',' ',' ', ' ','-',' ', ' ','-',' ', ' ','-',' ', ' ','-',' ', ' ','-',' ', ' ',' ',' ', ' ','-',' ', ' ','-',' '}, {' ', '|',' ','|', ' ','|',' ', '|',' ',' ', ' ',' ','|', ' ',' ','|', ' ',' ','|', '|',' ','|', ' ',' ','|', '|',' ','|', ' ',' ','|'}, {' ', ' ','-',' ', ' ',' ',' ', ' ','-',' ', ' ','-',' ', ' ',' ',' ', ' ','-',' ', ' ','-',' ', ' ',' ',' ', ' ','-',' ', ' ','-',' '}}; public static void main(String args[]) { Scanner cin = new Scanner(System.in); while(cin.hasNextInt()){ int k = cin.nextInt(); printNum(getYinshu(k)); } } public static void printNum(List<Integer> nums){ int k = nums.size() - 1; if(k==0){ printPrime(nums.get(0)); return; } for (int i = 0; i < 5; i++) { for(int m = 0;m<nums.size()-1;m++){ int orin = nums.get(m); int n = Math.abs(orin); for (int j = 3 * n + 1; j < 3 * (n + 1) + 1; j++) { System.out.print(numbers[i][j]); } if(orin>0){//超过9的质数 if(i==2){ System.out.print('*'); } else{ System.out.print(' '); } } } int n = nums.get(k); for (int j = 3 * n + 1; j < 3 * (n + 1) + 1; j++) { System.out.print(numbers[i][j]); } System.out.println(); } } public static void printPrime(List<Integer> nums){ int k = nums.size() - 1; if(k==0){ printPrime(nums.get(0)); return; } for (int i = 0; i < 5; i++) { for(int m = 0;m<nums.size();m++){ int n = nums.get(m); for (int j = 3 * n + 1; j < 3 * (n + 1) + 1; j++) { System.out.print(numbers[i][j]); } } System.out.println(); } } public static void printPrime(int num){ String str = String.valueOf(num); char c; int n; List<Integer> result = new ArrayList<Integer>(); for(int i=0;i<str.length();i++){ c = str.charAt(i); n = Integer.valueOf(String.valueOf(c)); result.add(n); } printPrime(result); } public static List<Integer> getYinshu(int num){ List<Integer> result = new ArrayList<Integer>(); int prime = 2; while (prime <= num) { if (prime == num) { //result.add(num); if(num>9){ //超过9,进行分割 String str = String.valueOf(num); char c; int n; for(int i=0;i<str.length()-1;i++){ c = str.charAt(i); n = Integer.valueOf(String.valueOf(c)); result.add(-1*n); } c = str.charAt(str.length()-1); n = Integer.valueOf(String.valueOf(c)); result.add(n); } else{ result.add(num); } break; } else if (num % prime == 0) { if(prime>9){ //超过9,进行分割 String str = String.valueOf(prime); char c; int n; for(int i=0;i<str.length()-1;i++){ c = str.charAt(i); n = Integer.valueOf(String.valueOf(c)); result.add(-1*n); } c = str.charAt(str.length()-1); n = Integer.valueOf(String.valueOf(c)); result.add(n); } else{ result.add(prime); } num = num / prime; } else { prime++; } } return result; }}
运行结果
0 1
- 360公司2016校园招聘笔试题大题一
- 360公司2016校园招聘笔试题大题一
- 360公司 2016校园招聘在线笔试编程题
- 360校园招聘2016笔试题
- 360校园招聘笔试题
- 各大IT公司2012校园招聘笔试面试整理
- 各大IT公司2012校园招聘笔试面试整理
- 各大IT公司2012校园招聘笔试面试整理
- 各大IT公司校园招聘笔试面试整理 .
- 各大IT公司2012校园招聘笔试面试整理
- 各大IT公司2012校园招聘笔试面试整理
- 各大IT公司2012校园招聘笔试面试整理
- 各大IT公司2012校园招聘笔试面试整理
- 各大IT公司2012校园招聘笔试面试整理
- 各大IT公司2012校园招聘笔试面试整理
- 各大IT公司2012校园招聘笔试面试整理
- 各大IT公司2012校园招聘笔试面试整理
- 各大IT公司2012校园招聘笔试题目
- 9.18学习总结
- Golang:make,slice和append的一个小细节
- 安装win7和Ubuntu双系统后,win7耳机没声音,外放有声音
- hadoop的example中的wordcount运行示例
- 斯蒂芬森的
- 360公司2016校园招聘笔试题大题一
- markdown学习小记
- Javascript学习笔记【第四章】
- IOS-Excel表格制作
- Specify class file destination报错,Servlet无法创建
- #pragma简介及常见用法
- 基于mfc下的俄罗斯方块程序设计
- hive大数据倾斜总结 1
- RadioButton设置了checked属性 运行后 一直选中的问题