2022年第四届全国高校计算机能力挑战赛区域赛java编程题第二套试卷
-
资源ID:347451547
资源大小:83.86KB
全文页数:10页
- 资源格式: DOCX
下载积分:0金贝
快捷下载
账号登录下载
微信登录下载
微信扫一扫登录
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
|
下载须知 | 常见问题汇总
|
2022年第四届全国高校计算机能力挑战赛区域赛java编程题第二套试卷
2022年第四届全国高校计算机能力挑战赛区域赛(java)第二套试卷编程的个人解答源码及思路个人解答源码及思路1. 科学计数法的显示(实现类似Excel单元格的科学记数法功能)。从键盘上输入两个数值字符串(均为正整数),显示对应的科学记数法字符串。例如:10000 2,10000表示数,2表示小数点位数,显示为1.00E+4。注意:科学记数法必须考虑四舍五入问题。例如输入为12345 3,显示为1.235E+4,输入为99995 3,显示为1.000E+5,而不是10.000E+4。输入说明:N(数值字符串) M(小数点位数)输出说明:科学记数法对应的字符串输入样例1:123456 3输入样例2:314159 4输出样例1:1.235E+5输出样例2:3.1416E+5源码:1. import java.util.Scanner;2. public class FirstProblemPreliminary 3. public static void main(String args) 4. Scanner sc = new Scanner(System.in);5. String strArray = sc.nextLine().split("s+");6. String digitalStr = strArray0;7. Integer decimalNumber = Integer.valueOf(strArray1);8. int length = digitalStr.length();9. int max = Math.max(length - 1, decimalNumber);10. char secondPartChars = new charmax;11. Integer secondPartInts = new Integermax;12. for (int i = 0; i < max; i+) 13. secondPartCharsi = '0'14. 15. for (int i = 1; i < length; i+) 16. secondPartCharsi - 1 = digitalStr.charAt(i);17. 18. for (int i = 0; i < max; i+) 19. secondPartIntsi = Integer.valueOf(String.valueOf(secondPartCharsi);20. 21. boolean flag = false;22. if (decimalNumber < length - 1) 23. flag = (secondPartIntsdecimalNumber >= 5) ? true : false;24. 25. for (int i = decimalNumber - 1; i >= 0; i-) 26. if (flag) 27. secondPartIntsi = secondPartIntsi + 1;28. if (secondPartIntsi = 10) 29. secondPartIntsi = 0;30. flag = true;31. else 32. flag = false;33. 34. 35. 36. /处理第一部分37. char firstPartChar = digitalStr.charAt(0);38. int firstPartCharInts = Integer.valueOf(String.valueOf(firstPartChar);39. boolean flag1 = false;40. if (flag) 41. firstPartCharInts = firstPartCharInts + 1;42. if (firstPartCharInts = 10) 43. firstPartCharInts = 1;44. flag1 = true;45. 46. 47. /处理最后部分48. int lastPartNumber = length - 1;49. if (flag1) 50. lastPartNumber = lastPartNumber + 1;51. 52. String lastPartStr = "E+".concat(String.valueOf(lastPartNumber);53. /打印输出54. System.out.print(firstPartCharInts);55. System.out.print(".");56. for (int i = 0; i < decimalNumber; i+) 57. System.out.print(secondPartIntsi);58. 59. System.out.println(lastPartStr);60. 61. 思路:将转换后的科学计数法字符串分为三个部分,以“1.235E+5”为例,“1” 为第一部分,“235”为第二部分,“E+5”为第三部分;由于涉及到四舍五入的进位问题,第二部分可能会影响第一部分,第一部分可能会影响第三部分,所以先处理第二步部分,再处理第一部分,最后处理第三部分。2.编写程序完成以下功能:输入正整数a的值,若a为偶数,求aa+aaaa+aaaaaa+直到a个a的累加和;若a为奇数,求a+aaa+aaaaa+直到a个a的累加和。输入说明:1至9之间的正整数a。输出说明:符合规律要求的连加算式(包含加数、运算符号和累加和,详见输出样例)输入样例1:5输入样例2:6输出样例1:5+555+55555=56115输出样例2:66+6666+666666=673398源码:1. import java.util.Scanner;2. public class SecondProblemPreliminary 3. public static void main(String args) 4. Scanner sc = new Scanner(System.in);5. int number = Integer.valueOf(sc.nextLine();6. int finalSum=0;7. String finalPattern=""8. if (number%2=0)9. for(int i=2;i<=number;i+=2)10. int stepNumber=stepNumber(number,i);11. finalSum=finalSum+stepNumber;12. finalPattern=finalPattern.concat(String.valueOf(stepNumber).concat("+");13. 14. 15. if (number%2=1)16. for(int i=1;i<=number;i+=2)17. int stepNumber=stepNumber(number,i);18. finalSum=finalSum+stepNumber;19. finalPattern=finalPattern.concat(String.valueOf(stepNumber).concat("+");20. 21. 22. finalPattern=finalPattern.substring(0,finalPattern.length()-1);23. finalPattern=finalPattern.concat("=").concat(String.valueOf(finalSum);24. System.out.println(finalPattern);25. 26. static int stepNumber(int number,int times)27. int sum=0;28. for(int i=0;i<times;i+)29. sum=sum*10+number;30. 31. return sum;32. 33. 思路:获取每一步的数值和对应的字符串(包含+号),字符串通过数值转换获取;数值进行累加,字符串进行连接;取出最后一个+号之前的字符串,连接=和最终结果(累加值)(上述代码的22行和23行)。3. 给出一棵非空二叉树所对应的完全二叉树的层次遍历序列,求其后序遍历序列。假设节点的值为大写英文字母,空值用#表示。层次遍历的特点是:从二叉树的第一层(根节点)开始,从上至下逐层遍历;在同一层中,则按照从左到右的顺序对节点逐个访问。输入说明:层次遍历序列输出说明:后序遍历序列输入样例1:ABCD#EF#G输入样例2:ABCD#EF#G输出样例1:DBGEFCA输出样例2:DBEGFCA源码:1. import java.util.ArrayList;2. import java.util.List;3. import java.util.Queue;