`
Wesleydeng
  • 浏览: 34907 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

一道笔试题的另一种玩法

阅读更多

 

今天笔试有道这样的题

用程序输出下面的序列:
1
2 3
3 1 2
1 2 3 1
2 3 1 2 3
3 1 2 3 1 2
1 2 3 1 2 3 1

 

当时自己写了这样的程序:

int i,j,firstNum;
for(i=0;i<7;i++)
{
	firstNum=i%3;
	for(j=0;j<i+1;j++)
	{
		System.out.print(firstNum%3+1);
		System.out.print(" ");//空格
		firstNum++;
	}
	System.out.println();
}
  

虽然简单,但是觉得有点余味不足,所以想来点面向对象,所以就回来写了下面的代码:

public class CharGenerator
{
	int current;
	final static char [] charSet={'1','2','3'};
	
	public CharGenerator()
	{
		current=0;
	}
	public char next()
	{
		char next=charSet[current];
		current=(current+1)%charSet.length;
		return next;
	}

	public void init(char startChar)
	{
		boolean isSuccessful=false;
		for (int i = 0; i < charSet.length; i++)
		{
			if(charSet[i]==startChar)
			{
				current=i;
				isSuccessful=true;
				break;
			}
		}
		if(!isSuccessful)
		{
			throw new IllegalArgumentException("没有此元素!");
		}
	}
}
 然后写个junit test:
	public void testGetNextPrintNum()
	{
		CharGenerator startCharGenerator=new CharGenerator();
		CharGenerator eachLineGenerator=new CharGenerator();
		for (int i = 1; i <=7; i++)
		{
			char startChar=startCharGenerator.next();
			eachLineGenerator.init(startChar);
			for (int j = 0; j < i; j++)
			{
				System.out.print(eachLineGenerator.next()+" ");
			}
			System.out.println();
		}	
	}
 新的程序容易修改,来输出不同的东西,而不再仅仅只是数字,将字符集改动一下:
final static char [] charSet={'我','爱','你'};
 
就得到如下结果

爱 你
你 我 爱
我 爱 你 我
爱 你 我 爱 你
你 我 爱 你 我 爱
我 爱 你 我 爱 你 我
0
3
分享到:
评论

相关推荐

    嵌入式软件笔试题合集.zip

    嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集...

    C++面试题笔试题C++ 数据结构算法笔试题资料合集.zip

    C++面试题笔试题C++ 数据结构算法笔试题资料合集: 50个C、C++面试题.pdf C++ 数据结构、算法笔试题.docx C++基础面试题.docx C++开发工程师面试题库.docx C++技能测试试卷一及答案.docx C++技能测试试卷二及答案....

    中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题

    中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 v中兴笔试题 中兴笔试题 ...中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题

    java笔试题笔试题

    java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 ...

    华信笔试题笔试题笔试题

    大连华信去年的笔试题,可以给各位即将工作的同学一些参考

    C#笔试题大全C#笔试题大全C#笔试题大全.

    C#笔试题大全C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.,让你...

    2012-2015历年中国移动笔试真题资料移动招聘合集.zip

    2013年四川移动校招笔试题.zip 2014年中国移动招聘笔试试题及答案.pdf 2015年中国移动招聘笔试试题及答案.pdf 移动笔试真题之市场营销类--中国移动校园招聘客服人员试题及答案.pdf 移动笔试真题之技术类--2010年厦门...

    c++笔试题汇总c++笔试题汇总.rar

    c++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rar

    环球雅思的一道笔试题

    有一组字符串,需要对它进行远程读取并按照规则进行逐行排序。 排序规则: 1. 字符规则(注意:区分大小写):j 2. 最后一列(1,2,3,4,5)需出现在排序后的第一列 3. 排序后输出的内容格式保持不变(即两两一组,...

    阿里巴巴校招前端笔试题

    阿里巴巴校招前端笔试题 校招前端笔试题.pages

    JSD面试笔试题汇总 JSD面试笔试题汇总

    JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题...

    计算机专业笔试题

    计算机专业笔试题,方便找工作的同学学习下载

    Java笔试题代码.png

    该文件为山大地纬Java开发岗笔试试题 该文件为山大地纬Java开发岗笔试试题 该文件为山大地纬Java开发岗笔试试题 该文件为山大地纬Java开发岗笔试试题 该文件为山大地纬Java开发岗笔试试题

    荣耀笔试题总结.docx

    荣耀笔试题总结.docx

    2021紫光笔试题IC校招笔试题.zip

    《2021紫光笔试题IC校招笔试题》是一个针对集成电路(IC)行业的笔试题目集合,主要针对应届毕业生的招聘过程。紫光集团是中国知名的集成电路设计与制造企业,其笔试题目的涵盖范围广泛,旨在测试应聘者的专业知识、...

    变态版java笔试试题

    创建一个字符串 "xyz" 时,实际上创建了两个对象,一个是 "xyz" 本身,另一个是指向 "xyz" 的引用对象 s。 三、Math 函数 Math.round(11.5) 返回 12,Math.round(-11.5) 返回 -11。 四、数据类型 short 型变量不...

    BI平台工程师笔试题.pdf

    有两种方法可以删除表中全部数据,一种是使用DELETE语句,例如`DELETE FROM table_name`,另一种是使用TRUNCATE TABLE语句,例如`TRUNCATE TABLE table_name`。TRUNCATE TABLE语句的速度更快,占用资源少,但不能...

    Java笔试题大集合及答案(另附各大公司笔试题)

    注解是元数据的一种,理解其工作原理和在代码中的应用。 9. **网络编程**:了解TCP/IP协议,理解Socket编程,包括服务器端与客户端的建立连接、数据传输等过程。 10. **设计模式**:熟悉并能应用常见的设计模式,...

    运维工程师笔试题.doc

    【运维工程师笔试题】 在运维领域,笔试题通常用来评估候选人的基础知识和技能。这份运维工程师的笔试题主要涵盖了Linux系统知识和Web容器两大主题,包括填空题、选择题和简答题。以下是对这些知识点的详细解释: ...

Global site tag (gtag.js) - Google Analytics