解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论

题目1、猜灯谜

A 村的元宵节灯会上有一迷题:

请猜谜 * 请猜谜 = 请边赏灯边猜

小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的数字。

请你用计算机按小明的思路算一下,然后提交“请猜谜”三个字所代表的整数即可。 请严格按照格式,通过浏览器提交答案。

注意:只提交一个3位的整数,不要写其它附加内容,比如:说明性的文字。

897

package com.liu.Main;

public class Main {
public static void main(String[] args) {
for(int i = 100;i < 1000;i++) {
int a = i / 100;
int b = i / 10 % 10;
int c = i % 10;
if(a != b && a != c && b != c) {
int d = i * i;
if(d >= 100000 && d < 1000000) {
String temp = d + "";
if(temp.charAt(0) != temp.charAt(5) && temp.charAt(0) - '0' == a && temp.charAt(5) - '0' == b) {
if(temp.charAt(1) == temp.charAt(4) && temp.charAt(2) != temp.charAt(3))
System.out.println("i = "+i+", d = "+d);
}
}
}
}
}
}

题目2、连续奇数和

小明看到一本书上写着:任何数字的立方都可以表示为连续奇数的和。

比如:

2^3 = 8 = 3 + 5

3^3 = 27 = 7 + 9 + 11

4^3 = 64 = 1 + 3 + … + 15

虽然他没有想出怎么证明,但他想通过计算机进行验证。

请你帮助小明写出 111 的立方之连续奇数和表示法的起始数字。如果有多个表示方案,选择起始数字小的方案。

请严格按照要求,通过浏览器提交答案。

注意:只提交一个整数,不要写其它附加内容,比如:说明性的文字。



371

public class Main {

    public static void main(String[] args) {
int result = 111 * 111 * 111;
for(int i = 1;i < 10000000;i = i + 2) {
int sum = 0;
for(int j = i;j < 10000000;j = j + 2) {
sum += j;
if(sum == result) {
System.out.println("i = "+i);
return;
} else if(sum > result)
break;
}
}
}
}

题目3、空白格式化

本次大赛采用了全自动机器测评系统。
如果你的答案与标准答案相差了一个空格,很可能无法得分,所以要加倍谨慎! 但也不必过于惊慌。因为在有些情况下,测评系统会把你的答案进行“空白格式化”。其具体做法是:去掉所有首尾空白;中间的多个空白替换为一个空格。所谓空白指的是:空格、制表符、回车符。
以下代码实现了这个功能。仔细阅读代码,填写缺失的部分。
void f(char* from, char* to)
{
char* p_from = from;
char* p_to = to;
while(*p_from==' ' || *p_from=='\t' || *p_from=='\n') p_from++; do{
if(*p_from==' ' || *p_from=='\t' || *p_from=='\n') {
do {
p_from++;
} while(*p_from==' ' || *p_from=='\t' || *p_from=='\n');
if(____________________) *p_to++ = ' '; //填空位置
}
}while(*p_to++ = *p_from++); }
请分析代码逻辑,并推测划线处的代码,通过网页提交。
注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!! *p_from

题目4、高僧斗法

古时丧葬活动中经常请高僧做法事。仪式结束后,有时会有“高僧斗法”的趣味节目,以舒缓压抑的气氛。

节目大略步骤为:先用粮食(一般是稻米)在地上“画”出若干级台阶(表示N级浮屠)。又有若干小和尚随机地“站”在某个台阶上。最高一级台阶必须站人,其它任意。(如图所示

)

两位参加游戏的法师分别指挥某个小和尚向上走任意多级的台阶,但会被站在高级台阶上的小和尚阻挡,不能越过。两个小和尚也不能站在同一台阶,也不能向低级台阶移动。 两法师轮流发出指令,最后所有小和尚必然会都挤在高段台阶,再也不能向上移动。轮到哪个法师指挥时无法继续移动,则游戏结束,该法师认输。

对于已知的台阶数和小和尚的分布位置,请你计算先发指令的法师该如何决策才能保证胜出。

输入数据为一行用空格分开的N个整数,表示小和尚的位置。台阶序号从1算起,所以最后一个小和尚的位置即是台阶的总数。(N<100, 台阶总数<1000)

输出为一行用空格分开的两个整数: A B, 表示把A位置的小和尚移动到B位置。若有多个解,输出A值较小的解,若无解则输出-1。

例如:

用户输入:

1 5 9

则程序输出:

1 4

再如:

用户输入:

1 5 8 10

则程序输出:

1 3

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String A = in.nextLine();
String[] arrayA = A.split(" ");
int[] num = new int[arrayA.length];
for(int i = 0;i < arrayA.length;i++)
num[i] = Integer.valueOf(arrayA[i]);
int[] B = new int[num.length];
for(int i = 1;i < num.length;i++)
B[i] = num[i] - num[i - 1] - 1;
int sum = 0;
for(int i = 1;i < B.length;i = i + 2)
sum ^= B[i];
if(sum > 0) {
for(int i = 1;i < num.length;i++) {
for(int j = 1;num[i - 1] + j < num[i];j++) {
B[i] = num[i] - num[i - 1] - j - 1;
if(i != 1)
B[i - 1] = num[i - 1] - num[i - 2] + j - 1;
sum = 0;
for(int k = 1;k < B.length;k = k + 2)
sum ^= B[k];
if(sum == 0) {
System.out.println(num[i - 1]+" "+(num[i - 1]+j));
return;
}
B[i] = num[i] - num[i - 1] - 1;
if(i != 1)
B[i - 1] = num[i - 1] - num[i - 2] - 1;
}
}
System.out.println("-1");
} else {
System.out.println("-1");
}
} }

题目5、格子刷油漆

标题:格子刷油漆

X国的一段古城墙的顶端可以看成 2*N个格子组成的矩形(如图所示),现需要把这些格子刷上保护漆。

你可以从任意一个格子刷起,刷完一格,可以移动到和它相邻的格子(对角相邻也算数),但不能移动到较远的格子(因为油漆未干不能踩!)

比如:a d b c e f 就是合格的刷漆顺序。

c e f d a b 是另一种合适的方案。

当已知 N 时,求总的方案数。当N较大时,结果会迅速增大,请把结果对 1000000007 (十亿零七) 取模。

输入数据为一个正整数(不大于1000)

输出数据为一个正整数。

例如:

用户输入:

2

程序应该输出:

24

再例如:

用户输入:

3

程序应该输出:

96

再例如:

用户输入:

22

程序应该输出:

359635897

import java.util.Scanner;

public class Main {
public static int MOD = 1000000007; public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
long[] q1 = new long[n + 1];
long[] q2 = new long[n + 1];
q1[1] = 1;
q1[2] = 2;
q2[1] = 1;
q2[2] = 6;
for(int i = 3;i <= n;i++) {
q1[i] = (2 * q1[i - 1]) % MOD;
q2[i] = (2 * q1[i - 1] + 2 * q2[i - 1] + 4 * q2[i - 2]) % MOD;
}
long sum = (4 * q2[n]) % MOD;
for(int i = 2;i < n;i++) {
sum = sum + 4 * (q1[i] * q2[n - i] + q1[n - i + 1] * q2[i - 1]) % MOD;
sum %= MOD;
}
if(n == 1)
sum = 2;
System.out.println(sum);
}
}

题目6、农场阳光

X星球十分特殊,它的自转速度与公转速度相同,所以阳光总是以固定的角度照射。 最近,X星球为发展星际旅游业,把空间位置出租给Y国游客来晒太阳。每个租位是漂浮在空中的圆盘形彩云(圆盘与地面平行)。当然,这会遮挡住部分阳光,被遮挡的土地植物无法生长。

本题的任务是计算某个农场宜于作物生长的土地面积有多大。

输入数据的第一行包含两个整数a, b,表示某农场的长和宽分别是a和b,此时,该农场的范围是由坐标(0, 0, 0), (a, 0, 0), (a, b, 0), (0, b, 0)围成的矩形区域。

第二行包含一个实数g,表示阳光照射的角度。简单起见,我们假设阳光光线是垂直于农场的宽的,此时正好和农场的长的夹角是g度,此时,空间中的一点(x, y, z)在地面的投影点应该是(x + z * ctg(g度), y, 0),其中ctg(g度)表示g度对应的余切值。

第三行包含一个非负整数n,表示空中租位个数。

接下来 n 行,描述每个租位。其中第i行包含4个整数xi, yi, zi, ri,表示第i个租位彩云的圆心在(xi, yi, zi)位置,圆半径为ri。

要求输出一个实数,四舍五入保留两位有效数字,表示农场里能长庄稼的土地的面积。 例如:

用户输入:

10 10

90.0

1

5 5 10 5

程序应该输出:

21.46

再例如:

用户输入:

8 8

90.0

1

4 4 10 5

程序应该输出:

1.81

样例3:

用户输入:

20 10

45.0

2

5 0 5 5

8 6 14 6

程序输出: 130.15

不会了,欢迎大佬给予代码

最新文章

  1. tornado 学习笔记17 HTTPServerRequest分析
  2. 图片上传安全性问题,根据ContentType (MIME) 判断其实不准确、不安全
  3. Jquery div展开收缩
  4. iOS开发基础框架
  5. iOS 事件穿透
  6. 实现OC与JS的交互
  7. 磁珠(FB)的选用
  8. .NET里的行为驱动开发
  9. 【JS学习笔记】关于function函数
  10. hdu4597 Play Game DP
  11. 201521123061 《Java程序设计》第十三周学习总结
  12. ASP.NET MVC5 Forms登陆+权限控制(控制到Action)
  13. Gitflow工作流程
  14. Javascript高级编程学习笔记(68)—— 事件(12)设备事件
  15. HDFS 开发中的文件配置优先级
  16. PMP:7.项目成本管理
  17. python tkinter-容器、子窗体
  18. 微信小程序---导航
  19. Jmeter响应中中文乱码解决办法
  20. java项目部署在linux上

热门文章

  1. 配置centos7 java环境
  2. 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目
  3. android关机流程
  4. flex和flex:1的含义
  5. Python dict字典方法完全攻略(全)
  6. flask之gevent-websocket的IO多路复用长连接通信
  7. Intel FPGA Clock Region概念以及用法
  8. 三、HTML元素
  9. windows 10 2016 企业版 长期服务 激活方式
  10. 高德SD地图数据生产自动化技术的路线与实践(道路篇)