您的位置:首页 > 编程语言 > Java开发

华为的两道笔试题:字符串循环移动;大数求余问题

2016-04-26 13:36 573 查看
字符串循环移动:输入一个字符串以及要移动的位数;将字符串后面的若干位移动到字符串的前面;
import java.util.Scanner;

public class xunHuanYiDong {
//字符串循环移动
public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);
String str01 = scanner.nextLine();
int i = scanner.nextInt();
scanner.close();
String[] strArr = str01.split(" ");

StringBuffer stringBuffer = new StringBuffer();

for(int j=strArr.length-i;j<strArr.length;j++){
stringBuffer.append(strArr[j]+" ");
}
for(int j=0;j<strArr.length-i;j++){
stringBuffer.append(strArr[j]+" ");
}

System.out.println(stringBuffer.toString().trim());
String[] str02 = stringBuffer.toString().split(" ");
int num01=0;
int num02=0;

for(int j=0;j<i;j++){
num01+=Integer.valueOf(str02[j]);
}

for(int j=str02.length-i;j<str02.length;j++){
num02+=Integer.valueOf(str02[j]);
}

System.out.println(num01+" "+num02);

}

}
测试结果:
输入
1 2 3 4 5 6 7 8 9 103
输出8 9 10 1 2 3 4 5 6 727 18
大数求余问题:输入两个超大数,求数1模数2的余数;
import java.math.BigInteger;import java.util.Scanner;//大数求余数public class bigDataYuShu {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);try{String str = scanner.nextLine();scanner.close();String[] strArr = str.split(" ");BigInteger bigInteger = new BigInteger(strArr[0]);BigInteger bigInteger01 = new BigInteger(strArr[1]);System.out.println(bigInteger.remainder(bigInteger01));}catch(Exception ex){System.out.println("null");}}}
输入:
1234567899999999999999999999999999999999999999999912345678 8912345678912345678955566666666452135431
输出4628516629007495789935989944482684075860

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息