华为的两道笔试题:字符串循环移动;大数求余问题
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
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树