论坛首页 招聘求职论坛

华为-赛门铁克 笔试题

浏览 27998 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-10  
springfield 写道
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30
看这个字符串的最后一位是不是 6 2 8 4 0 这几个数就行了


(6的倍数的尾数为6,2,8,4,0)  !=  (尾数为6,2,8,4,0的数是6的倍数)
0 请登录后投票
   发表时间:2009-06-10   最后修改:2009-06-11
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整除");
			}
		}
	}

兄台! 你不觉得你的代码有问题么  打个比方 如果 String str="14";呢
0 请登录后投票
   发表时间:2009-06-10  
reignile 写道
springfield 写道
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30
看这个字符串的最后一位是不是 6 2 8 4 0 这几个数就行了


(6的倍数的尾数为6,2,8,4,0)  !=  (尾数为6,2,8,4,0的数是6的倍数)


按照你的道理 人有2条腿,那么有2条腿的就是人?
0 请登录后投票
   发表时间:2009-06-11   最后修改:2009-06-11
public class MyFile {
	public boolean test(String str){
		int b=0;
		char a[]=str.toCharArray();
		if(Integer.parseInt(a[a.length-1]+"")%2!=0)
			return false;
		else{
			for(int i=0;i<a.length;i++){
				 b+=a[a.length-1];
				 if(b>100000){
					 b=b%3;
				 }
				
			}
			
				 if(b%3==0)
					 return true;
				 else 
					 return false; 					 

			
		}

	}
}


个人意见 不对的地方希望大虾指导!
0 请登录后投票
   发表时间:2009-06-11  
yw404109794 写道
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整除");
			}
		}
	}

兄台! 你不觉得你的代码有问题么  打个比方 如果 String str="14";呢


你这就是典型的臆断需求。题目要你写适用各种字符串的算法了么?
0 请登录后投票
   发表时间:2009-06-11  
pipilu 写道
yw404109794 写道
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整除");
			}
		}
	}

兄台! 你不觉得你的代码有问题么  打个比方 如果 String str="14";呢


你这就是典型的臆断需求。题目要你写适用各种字符串的算法了么?


如果能做到,为什么不去做呢!
0 请登录后投票
   发表时间:2009-06-11  
yw404109794 写道
reignile 写道
springfield 写道
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30
看这个字符串的最后一位是不是 6 2 8 4 0 这几个数就行了


(6的倍数的尾数为6,2,8,4,0)  !=  (尾数为6,2,8,4,0的数是6的倍数)


按照你的道理 人有2条腿,那么有2条腿的就是人?



汗你的理解力,等于和不等于看不懂吗
0 请登录后投票
   发表时间:2009-06-11  
reignile 写道
yw404109794 写道
reignile 写道
springfield 写道
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30
看这个字符串的最后一位是不是 6 2 8 4 0 这几个数就行了


(6的倍数的尾数为6,2,8,4,0)  !=  (尾数为6,2,8,4,0的数是6的倍数)


按照你的道理 人有2条腿,那么有2条腿的就是人?



汗你的理解力,等于和不等于看不懂吗


不好意思。。。。。我是说你引用的那位仁兄。。。。 我的错!
0 请登录后投票
   发表时间:2009-06-11  
Erecch 写道
pipilu 写道
yw404109794 写道
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整除");
			}
		}
	}

兄台! 你不觉得你的代码有问题么  打个比方 如果 String str="14";呢


你这就是典型的臆断需求。题目要你写适用各种字符串的算法了么?


如果能做到,为什么不去做呢!

String str = "14" 结果是“该STRING不能被6整除”
0 请登录后投票
   发表时间:2009-06-19  
shuai45 写道
如果一个数能被2整除,又是3的倍数,那此数可以被6整除。所以取其尾数进行判断
public static void main(String[] args) {
String str = "123456";
int sign = new Integer(String.valueOf(str.charAt(str.length()-1)));
if(sign%2==0 && sign%3==0){
System.out.println("ok");
}
}


大哥~长字符串好不好。你int能放多少东西啊.
能被2整除,和是3的倍数有区别么?是3的倍数不就是能被3整除么....
0 请登录后投票
论坛首页 招聘求职版

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