博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法笔记_117:算法集训之结果填空题集一(Java)
阅读量:7070 次
发布时间:2019-06-28

本文共 8494 字,大约阅读时间需要 28 分钟。

 目录

 

 


1 空瓶换汽水

 

浪费可耻,节约光荣。饮料店节日搞活动:不用付费,用3个某饮料的空瓶就可以换一瓶该饮料。刚好小明前两天买了2瓶该饮料喝完了,瓶子还在。他耍了个小聪明,向老板借了一个空瓶,凑成3个,换了一瓶该饮料,喝完还瓶!!饮料店老板一统计,已经售出该饮料且未还瓶的有12345瓶,那么如果这些饮料的买主都如小明一样聪明,老板最多还需要送出多少瓶饮料呢?显然答案是个正整数。12345 / 2 = 6172参考答案:6172

 

 

 

 

2 三人年龄

 

三个神秘蒙面人来访F博士。博士询问他们年龄时,他们说:我们中年龄最小的不超过19岁。我们3人年龄总和为70岁。且我们三人年龄的乘积是所有可能情况中最大的。请帮助F博士计算他们的年龄,从小到大排列,用逗号分开。参考答案:19,25,26

 

public class Main {    public void printResult() {        int[] A = new int[3];        int max = 0;        for(int a = 1;a < 100;a++) {            for(int b = 1;b < 100;b++) {                for(int c = 1;c < 100;c++) {                    int min = a;                    if(min > b)                        min = b;                    if(min > c)                        min = c;                    if(min > 19)                        continue;                    if(a + b + c == 70) {                        if(a*b*c > max) {                            A[0] = a;                            A[1] = b;                            A[2] = c;                            max = a*b*c;                        }                    }                                        }            }        }        System.out.println(A[0]+", "+A[1]+", "+A[2]+", "+max);    }        public static void main(String[] args) {        Main test = new Main();        test.printResult();    }    }

 

 

 

3 考察团组成

 

某饭店招待国外考察团。按照标准,对领导是400元/人,随团职员200元/人,对司机50元/人。考察团共36人,招待费结算为3600元,请问领导、职员、司机各几人。答案是三个整数,用逗号分隔。参考答案:3,5,28

 

public class Main {        public void printResult() {        for(int a = 0;a <= 36;a++) {            for(int b = 0;b <= 36;b++) {                for(int c = 0;c <= 36;c++) {                    if(a + b + c == 36) {                        int temp = a * 400 + b * 200 + c * 50;                        if(temp == 3600)                            System.out.println(a+", "+b+", "+c);                    }                }            }        }        return;    }        public static void main(String[] args) {        Main test = new Main();        test.printResult();    }}

 

 

 

4 微生物增殖

 

假设有两种微生物 X 和 YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。如果X=10,Y=90  呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只 Y 就是最终导致 Y 种群灭绝的最后一根稻草!请忍住悲伤,把答案写在“解答.txt”中,不要写在这里!两个整数,每个1行。参考答案:0        94371840

 

public class Main {        public void printResult(int x, int y) {        for(int i = 1;i <= 60;i++) {            y = y -x;            if(y <= 0) {                System.out.println("i = "+i);                break;            }            if(i % 2 == 0)                y = y * 2;            if(i % 3 == 0)                x = x * 2;        }        System.out.println("x = "+x+", y = "+y);        return;    }        public static void main(String[] args) {        Main test = new Main();        test.printResult(10, 89);        test.printResult(10, 90);    }}

 

 

 

5 除去次方数

 

自然数的平方数是:1 4 9 16 25 …自然数的立方数是:1 8 27 64 125 …自然数的4次方数是:1 16 81 256 ……这些数字都可以称为次方数。1~10000中,去掉所有的次方数,还剩下多少个数字?参考答案:9875

 

import java.util.ArrayList;public class Main {        public void printResult() {        ArrayList
list = new ArrayList
(); for(long i = 1;i <= 10000;i++) list.add(i); int count = 2; while(true) { for(long i = 1;i <= 100;i++) { long a = (long) Math.pow(i, count); if(a > 10000) break; if(list.contains(a)) { list.remove(list.indexOf(a)); } } count++; if(count > 50) break; } System.out.println(list.size()); return; } public static void main(String[] args) { Main test = new Main(); test.printResult(); }}

 

 

 

6 正六面体染色

 

正六面体用4种颜色染色。共有多少种不同的染色样式?要考虑六面体可以任意旋转、翻转。参考答案:240Burnside引理,正方体涂色问题(n^6 + 3*n^4 + 12*n^3 + 8*n^2)/24  

 

 

 

 

7 古堡算式

 

福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:    ABCDE * ? = EDCBA    他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”    华生:“我猜也是!”    于是,两人沉默了好久,还是没有算出合适的结果来。    请你利用计算机的优势,找到破解的答案。    把 ABCDE 所代表的数字写出来。    答案写在“解答.txt”中,不要写在这里!参考答案:21978

 

import java.util.ArrayList;public class Main {        public void dfs(ArrayList
list, int step) { if(step == 5) { check(list); return; } else { for(int i = 0;i < 10;i++) { if(list.contains(i)) continue; list.add(i); dfs(list, step + 1); list.remove(list.size() - 1); } } return; } public void check(ArrayList
list) { if(list.get(0) == 0) return; int A = 0, B = 0;; for(int i = 0;i < list.size();i++) { A = A * 10 + list.get(i); B = B * 10 + list.get(4 - i); } for(int i = 1;i < 9;i++) { if(A * i == B) { System.out.println("A = "+A+", B = "+B+", i = "+i); } } return; } public static void main(String[] args) { Main test = new Main(); ArrayList
list = new ArrayList
(); test.dfs(list, 0); } }

 

 

 

8 海盗比酒量

 

有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人没倒下。如果有多个可能的答案,请列出所有答案,每个答案占一行。格式是:人数,人数,...例如,有一种可能是:20,5,4,2,0多个答案排列顺序不重要。答案写在“解答.txt”中,不要写在这里!参考答案:18,9,3,2,0      (1分)15,10,3,2,0     (2分)20,5,4,2,0      (0分)12,6,4,2,0      (2分)

 

public class Main {        public void printResult() {        for(int a = 20;a > 0;a--) {            for(int b = a - 1;b > 0;b--) {                for(int c = b - 1;c > 0;c--) {                    for(int d = c - 1;d > 0;d--) {                        int a1 = b * c * d;                        int a2 = a * c * d;                        int a3 = a * b * d;                        int a4 = a * b * c;                        int b1 = a * b * c * d;                        if(a1 + a2 + a3 + a4 == b1)                            System.out.println(a+", "+b+", "+c+", "+d);                    }                }            }        }        return;    }        public static void main(String[] args) {        Main test = new Main();        test.printResult();    }}

 

 

 

9 奇怪的比赛

 

某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。每位选手都有一个起步的分数为10分。某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。你的任务是算出所有可能情况。每个答案占一行。多个答案顺序不重要。答案写在“解答.txt”中,不要写在这里!参考答案:0010110011  (0分)0111010000  (4分)1011010000  (4分)

 

import java.util.ArrayList;public class Main {    public ArrayList
list = new ArrayList
(); public void dfs(int[] A, int step) { while(step < A.length) { list.add(A[step]); check(); step++; dfs(A, step); list.remove(list.size() - 1); } return; } public void check() { int[] value = new int[11]; for(int i = 0;i < list.size();i++) value[list.get(i)] = 1; int x = 10; for(int i = 1;i < 11;i++) { if(value[i] == 0) x = x - i; else if(value[i] == 1) x = x * 2; } if(x == 100) { for(int i = 1;i < 11;i++) System.out.print(value[i]); System.out.println(); } return; } public static void main(String[] args) { Main test = new Main(); int[] A = {1,2,3,4,5,6,7,8,9,10}; test.dfs(A, 0); }}

 

 

 

10 土地测量

造成高房价的原因有许多,比如土地出让价格。既然地价高,土地的面积必须仔细计算。遗憾的是,有些地块的形状不规则,比如是如图【1.jpg】中所示的五边形。一般需要把它划分为多个三角形来计算。已知三边求三角形的面积需要用海伦定理,参见【2.jpg】各条边长数据如下:AB = 52.1BC = 57.2CD = 43.5DE = 51.9EA = 33.4EB = 68.2EC = 71.9根据这些数据求五边形地块的面积。四舍五入到小数后两位。只写结果,不要源代码!答案写在“解答.txt”中,不要写在这里!图1图2参考答案:3789.86
public class Main {        public double getResult(double a, double b, double c) {        double p = (a + b + c) / 2;        double result = Math.sqrt(p * (p - a) * (p - b) * (p - c));        return result;    }        public static void main(String[] args) {        Main test = new Main();        double result = test.getResult(52.1, 33.4, 68.2);        result += test.getResult(68.2, 57.2, 71.9);        result += test.getResult(71.9, 51.9, 43.5);        System.out.println(result);    }}

 

转载地址:http://ofhll.baihongyu.com/

你可能感兴趣的文章
centos7安装jdk1.8
查看>>
Vue中v-for的数据分组
查看>>
实现选项卡的原理
查看>>
ajax 无刷新下拉加载更多。
查看>>
[Xilinx]同步复位与异步复位
查看>>
函数fp()、数组a[i]和箭头符号->的由来
查看>>
遇见的错误
查看>>
第二周习题F
查看>>
用C++的STL排序算法排序
查看>>
val() attr('value')
查看>>
【高斯消元】CDOJ1783 曜酱的线性代数课堂(一)
查看>>
oracle 11g(64位)datebase 安装流程
查看>>
maven 生成可执行的jar文件
查看>>
杭电 1287 破译密码
查看>>
用例方面的书
查看>>
supervise守护进程
查看>>
PHP-day01
查看>>
HTML5两个打包工具
查看>>
spring cloud-前端跨域问题的解决方案
查看>>
BOM 和 JavaScript 中的 trim
查看>>