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

来源:互联网 发布:淘宝网我要买 编辑:程序博客网 时间:2024/05/22 08:29

字符串循环移动:

输入一个字符串以及要移动的位数;将字符串后面的若干位移动到字符串的前面;

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



0 0
原创粉丝点击