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

丢失的三个元素、网格走法

2017-08-30 08:51 106 查看
/

*1、题目描述

现在有一个数组,其值为从1到10000的连续增长的数字。出于某次偶然操作,导致这个数组中丢失了某三个元素,同时顺序被打乱,现在需要你用最快的方法找出丢失的这三个元素,并且将这三个元素根据从小到大重新拼接为一个新数字,计算其除以7的余数。 例:丢失的元素为336,10,8435,得到的新数字为103368435,除以七的余数为2。

输入描述:

输入数据为一行,包含9997个数字,空格隔开。

输出描述:

输出为一行,包含一个数字。

示例1

输入

同题设例子输入

输出

2**

*

*/

public class MixThree {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner in = new Scanner(System.in);
int[] a = new int[10001];
for (int i = 1; i <= 9997; i++) {
int res=in.nextInt();
a[res] = res;
}
games(a);
}

private static void games(int[] a) {
ArrayList<Integer> arr=new ArrayList<Integer>();
for(int i=1;i<a.length;i++){
if(a[i]==0){
arr.add(i);
}
}
StringBuilder resBuilder=new StringBuilder();
for(int i=0;i<3;i++){
resBuilder.append(arr.get(i));
}
//        for(Integer in :arr){
//            resBuilder.append(in);
//        }
String resString=resBuilder.toString();
System.out.println(Long.valueOf(resString)%7);
}
}


/**

***2、有一个X*Y的网格,小团要在此网格上从左上角到右下角,只能走格点且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数int x,int y,请返回小团的走法数目。

输入描述:

输入包括一行,逗号隔开的两个正整数x和y,取值范围[1,10]。

输出描述:

输出包括一行,为走法的数目。

示例1

输入

3 2

输出

10**

*

*/

public class WalkBlock {                     //思路是动态规划,f(m,n)网格走法可以分解成f(m-1,n)+f(m,n-1),依次递归即可)

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner in = new Scanner(System.in);
//        String xyString=in.nextLine();
//        String[] aStrings=xyString.split(",");
//        int x = Integer.valueOf(aStrings[0]);
//        int y =Integer.valueOf(aStrings[1]);
int x = in.nextInt();
int y = in.nextInt();
System.out.println(game(x, y));
}

private static long game(int x, int y) {
if (x == 0 || y == 0) {
return 1;
} else {
return game(x - 1, y) + game(x, y - 1);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息