华为2014年7月7日下午1点机试题-java
中级题
判断一个字符串当中是否存在重复字串,若存在返回1,若不存在返回0
输入 abcdabc
输出 1
import java.util.Scanner;
public class Question4 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
System.out.println(containSameSubstring(input));
}
private static int containSameSubstring(String input) {
// TODO Auto-generated method stub
for(int i = 0;i < input.length(); i++){
for(int j = i+1; j < (input.length()-i)/2; j++){
String sub = input.substring(i,j);
if(input.substring(j+1).contains(sub)){
return 1;
}
}
}
return 0;
}
}
高级题
给分数的循环节加括号
输入 1 7
输出 0.(142857)
import java.util.Scanner;
public class Question5 {
public static String getRecycle(double result){
String[] s = (""+result).split("\\.");
String num = s[1];
for(int i = 0; i < num.length(); i++){
for(int j = 1; j < num.length(); j++){
String sub = num.substring(i,j);
if(num.substring(j).startsWith(sub)){
return s[0]+".("+sub+")";
}
}
}
return ""+result;
}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
double result = (double)a/b;
System.out.println(getRecycle(result));
}
}