论坛首页 招聘求职论坛

华为-赛门铁克 笔试题

浏览 28001 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-23  
先看看最后面的数是不是偶数,如果是则遍历字符串的各个数字然后相加,得出的输入过是3的倍数就可以被6整除。。。应该说比较简单吧
0 请登录后投票
   发表时间:2009-11-27   最后修改:2009-11-27
(2)若一个整数的末位是0、2、4、6或8,则这个数能被2整除。 (3)若一个整数的数字和能被3整除,则这个整数能被3整除。  (6)若一个整数能被2和3整除,则这个数能被6整除
0 请登录后投票
   发表时间:2009-11-30  
xichao007521 写道
其实这道题由一个很简单的解法,
初中时的一个定理,连续三个数一定能被3整除,比如123%3=0,234%3=0
题目中给出的String = "123456789123..."是9个为一组的连续的数。
所以:
1、判断String最后一位是否可以被2整除,是,执行2,否则String不能被6整除,退出。
2、length为String的长度,leftLength = length%3,将String最后几位(0-3位)相加,若不能被3整除,退出。
3、该String能被6整除。
代码清单如下:
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "12345678912345678";
		char ch[] = str.toCharArray();
		int len = ch.length;
		if(Integer.parseInt(ch[len-1] + "") % 2 != 0)
		{
			System.out.print("该STRING不能被6整除");
		}
		else
		{
			int leftLen = len % 3;
			
			int sum = 0;
			for(int i = leftLen - 1; i < len - 1; i++)
			{
				sum = Integer.parseInt(ch[i] + "") + sum;
			}
			
			if(sum % 3 != 0)
			{
				System.out.print("该STRING不能被6整除");
			}else
			{
				System.out.print("该STRING能被6整除");
			}
		}
	}

窃以为这位兄台的解决方案是这道题目的最优解决方案
0 请登录后投票
   发表时间:2010-01-06  
yuyee 写道
这题目很简单的

很简单的话 你可以吧答案写一下  让大家交流一下
0 请登录后投票
   发表时间:2010-01-06  
能被6整除的数必然可以被2和3整除,被3整除的数字各位相加必然是3的倍数,被2整除的数字位数是偶数,很容易做判断
0 请登录后投票
   发表时间:2010-01-07  
华塞是个什么公司,是不是像华为那样
0 请登录后投票
   发表时间:2010-01-08  
我08年做过这套题,楼主忘记了最关键的一句话, 不能用数学计算,例如,+-*/
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics