2011年华为杯校园编程大赛
2013-05-10 23:07
323 查看
1. 矩阵转置(20分)
问题描述:
将一个N*N矩阵的行列互换。
要求实现函数:
public String matrixTranspose (String inArr, int n)
【输入】inArr: 输入的字符矩阵
n: N*N矩阵的行数
【返回】转置后的字符矩阵
注:
输入输出的矩阵都是以一维形式保存的二维数组,比如输入为" 1, 2, 3, 4, 5, 6, 7, 8, 9",实际上表示如下3*3的矩阵:
1,2,3,
4,5,6,
7,8,9
示例
输入InArr = "1, 2, 3, 4, 5, 6, 7, 8, 9 ",n=3
返回:"1,4,7,2,5,8,3,6,9"
问题描述:
M个人围成一圈报数,数到N(1<N<10)的倍数或包含N这个数字时出圈,问剩下的最后一个人在原来的位置是多少?
报数规则
1、从第一个人开始报数为1,下一个人报数为上一个人报数加1
2、报数的最大值为2000,如果报数超过2000,则下一个人重新从1开始报数
要求实现方法:
public String outFunc(int iTotalNum, int iKey)
【输入】iTotalNum:开始报数前的总人数, 0<iTotalNum<65535
iKey: 题目中要求的数目N
【输出】无
【返回】剩下的人的原来的位置
示例
输入:iTotalNum =5, iKey =3
返回:"4"
输入:iTotalNum =15, iKey =3
返回:"10"
3. 公交站寻址(50分)
问题描述:
一个N*N二维矩阵代表城市布局,元素值只有’.’,’X’ , ‘B’ , ‘S’,X代表当前位置,B代表路障,S代表公交站,’.’代表可行的路径。
现给定路径长度Y,找到能够到达的公交站的个数,路径中不能包含路障。
路径长度定义:
1、节点与其自身的距离为0
2、节点与其上、下、左、右四个相邻节点距离都为1
要求实现方法:
public String findStat (String map, int iArrN, int iPathLen)
【输入】map: 城市布局
iArrN: 城市布局矩阵的行数
iPathLen: 给定的路径长度
【输出】无
【返回】能够到达的公交站个数
注:输入矩阵是以一维形式保存的二维数组,比如输入为"A, B, C, D, E, F,G, H, I",实际上表示如下3*3的矩阵:
A,B,C,
D,E,F,
G,H,I
示例
输入:"...S.,.....,..X.S,.....,S....", 5, 3
返回:2
输入:"S...S,.....,....B,S....,....X", 5, 5
返回:1
问题描述:
将一个N*N矩阵的行列互换。
要求实现函数:
public String matrixTranspose (String inArr, int n)
【输入】inArr: 输入的字符矩阵
n: N*N矩阵的行数
【返回】转置后的字符矩阵
注:
输入输出的矩阵都是以一维形式保存的二维数组,比如输入为" 1, 2, 3, 4, 5, 6, 7, 8, 9",实际上表示如下3*3的矩阵:
1,2,3,
4,5,6,
7,8,9
示例
输入InArr = "1, 2, 3, 4, 5, 6, 7, 8, 9 ",n=3
返回:"1,4,7,2,5,8,3,6,9"
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in))); int a=sc.nextInt();//矩阵a的行数 int s[]=new int[a*a];//一维数组s存放矩阵 int sout[]=new int[a*a]; int s1[][]=new int[a][a];//二维数组存放矩阵 for(int i=0;i<a*a;i++) { s[i]=sc.nextInt(); } //将矩阵一维数组转换为二维数组存放 for(int m=0;m<a;m++) { for(int n=0;n<a;n++) { s1[m] =s[a*m+n]; } } for(int m=0;m<a;m++) { for(int n=0;n<a;n++) { sout[a*m+n]=s1 [m]; System.out.print(sout[a*m+n]+" "); } } } }2. 出圈问题(30分)
问题描述:
M个人围成一圈报数,数到N(1<N<10)的倍数或包含N这个数字时出圈,问剩下的最后一个人在原来的位置是多少?
报数规则
1、从第一个人开始报数为1,下一个人报数为上一个人报数加1
2、报数的最大值为2000,如果报数超过2000,则下一个人重新从1开始报数
要求实现方法:
public String outFunc(int iTotalNum, int iKey)
【输入】iTotalNum:开始报数前的总人数, 0<iTotalNum<65535
iKey: 题目中要求的数目N
【输出】无
【返回】剩下的人的原来的位置
示例
输入:iTotalNum =5, iKey =3
返回:"4"
输入:iTotalNum =15, iKey =3
返回:"10"
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in))); System.out.println("请输入总人数和N"); int sum=sc.nextInt();//总人数 int num=sum; int N=sc.nextInt();//题目要求的N int count=0;//计算能被N整除以及含有N的数的个数 for(int i=1;i<=num;i++) { if(i<=2000) { if(i%N==0) { count++; } else { String itostring=Integer.toString(i);//将i转化为字符串,并找出其中与N相同的字符 String ntostring=Integer.toString(N); char nto[]=ntostring.toCharArray(); char ito[]=itostring.toCharArray(); boolean bool = false; for(int j=0;j<ito.length;j++) { if (nto[0]==ito[j]) { bool=true;//找到与N相同的字符 } } if(bool) { count++; } } } else { num=num-2000;//报数的最大值为2000,如果报数超过2000,则下一个人重新从1开始报数 i=1; } } System.out.println(sum-count+1); } }
3. 公交站寻址(50分)
问题描述:
一个N*N二维矩阵代表城市布局,元素值只有’.’,’X’ , ‘B’ , ‘S’,X代表当前位置,B代表路障,S代表公交站,’.’代表可行的路径。
现给定路径长度Y,找到能够到达的公交站的个数,路径中不能包含路障。
路径长度定义:
1、节点与其自身的距离为0
2、节点与其上、下、左、右四个相邻节点距离都为1
要求实现方法:
public String findStat (String map, int iArrN, int iPathLen)
【输入】map: 城市布局
iArrN: 城市布局矩阵的行数
iPathLen: 给定的路径长度
【输出】无
【返回】能够到达的公交站个数
注:输入矩阵是以一维形式保存的二维数组,比如输入为"A, B, C, D, E, F,G, H, I",实际上表示如下3*3的矩阵:
A,B,C,
D,E,F,
G,H,I
示例
输入:"...S.,.....,..X.S,.....,S....", 5, 3
返回:2
输入:"S...S,.....,....B,S....,....X", 5, 5
返回:1
相关文章推荐
- 2013年华为校园编程大赛第一题
- 2012年华为软件校园招聘编程测验(又名:2012华为创新杯编程大赛)软件Java语言类原题与解答
- 华为2012编程大赛题目(2)
- 第五届华为“创新杯”编程大赛初赛题目(第二场)
- 微软高性能计算校园编程大赛全面启动
- 华为2012校园招聘上机编程题(3)
- 2011年SQL编程大赛
- 【 2013华为杯编程大赛成都第三组前两题试题及答案】
- 《我是应届生》——2017华为“创想杯”校园开发者大赛纪实
- 华为2012第四届编程大赛初赛题目(4-22下午)
- 华为软件校园招聘编程上机题目1
- 【C编程练习】2013华为校园招聘机试题目题5:将一个int类型的数字转化为字符串,并判断有无重复字符串(长度应大于2)有返回1,无返回2
- 【大坑特坑】第六届华为“创新杯”编程大赛初赛题目(第五场)
- 华为12年编程大赛:将字符串中的数字进行排序
- 华为编程大赛--洞穴逃生
- 2013华为第五届编程大赛 成都初赛题目和解答
- 华为编程大赛——公交站寻址
- 华为的编程大赛题
- 2014第六届华为创新杯编程大赛初赛解题报告
- 第六届华为创新杯编程大赛