首页 > ACM题库 > 九度OJ > 九度-1197-奇偶校验[解题代码]
2013
12-13

九度-1197-奇偶校验[解题代码]

题目来源:2010年华中科技大学计算机研究生机试真题

题目描述:

输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如’3’,输出:10110011)。

输入:

输入包括一个字符串,字符串长度不超过100。

输出:

可能有多组测试数据,对于每组数据,
对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。

样例输入:
3
3a
样例输出:
10110011
10110011
01100001

java 代码如下:
import java.util.Scanner;


public class Main {

	
	public static void main(String[] args) {
		
		Scanner s = new Scanner(System.in);
		while(s.hasNext()){
			String str = s.next();
			int len = str.length();
			
			for(int i=0; i<len; i++){
				int count = 0;
				int c = str.charAt(i);
				String bin = Integer.toBinaryString(c);
				int l = bin.length();
//				System.out.println(l);
				for(int j=0; j<l; j++){
					if(bin.charAt(j) == 49)
						count ++;
				}
				String temp = null;
				
				if(count%2 == 0)
					temp="1";
				else
					temp="0";
				
				for(int k=0; k<8-l-1; k++)
					temp += "0";
//				System.out.println(temp);
				System.out.println(temp.concat(bin));
			}
		}
	}

}

/**************************************************************
	Problem: 1197
	User: coder
	Language: Java
	Result: Accepted
	Time:1930 ms
	Memory:41512 kb
****************************************************************/


  1. 这道题这里的解法最坏情况似乎应该是指数的。回溯的时候
    O(n) = O(n-1) + O(n-2) + ….
    O(n-1) = O(n-2) + O(n-3)+ …
    O(n) – O(n-1) = O(n-1)
    O(n) = 2O(n-1)