50道经典的JAVA编程题(41-45),苦逼的程序猿,晚上睡不着了编程吧~今天坚持做10道题!发现编程能是我快乐。。。O(∩_∩)O哈哈~能平静我烦乱的心,剩下5道题留到考试完了再做吧!该睡觉了、、、

【程序41】 MonkeyPeach.java

题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一

个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中

,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

注: 递归得到还没拿桃子时的桃子数,每次得到的值必须是整数

javapackage test50;

/**

* @author VellBibi

*【程序41】 MonkeyPeach.java

*题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一

*个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中

*,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

*/

public class MonkeyPeach {

/**

* 获得第n个猴子还没拿桃子时的桃子数

* 最后一个猴子拿了m个桃子

* @param n

* @param m

* @return

*/

public static int getNum(int n, int m){

if(n > 5) return m*4;

else {

double ans = getNum(n+1, m) / 4.0 * 5 + 1;

if(ans%1 != 0.0 || ans == 1){//判断结果是否为整数,或者结果不为1

return 0;

}else

return (int)ans;

}

}

public static void main(String[] args) {

int ans = 0;

for(int i=1; ; i++){

ans = getNum(1, i);

if(ans != 0){

System.out.println("当最后一只猴子拿走" + i + "个桃子时,海滩上原来桃子得到最小值为:");

System.out.println(ans);

break;

}

}

}

}

反推数据:(验证结果是正确的)

感觉上面的实现方案有点小题大做了,要是直接验证结果的话会更快的得到答案,看代码:

javapackage test50;

/**

* @author VellBibi

*【程序41】 MonkeyPeach_1.java

*题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一

*个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中

*,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

*1.程序分析:采取直接验证结果的方式

*/

public class MonkeyPeach_1 {

public static boolean isRight(int n) {

for(int i=0; i<5; i++) {

if(n % 5 == 1) {

n = n - 1;

n = n - n / 5;

}else

return false;

}

return true;

}

public static void main(String[] args) {

for(int n=1; ; n++) {

if(isRight(n)) {

System.out.println("海滩上原来桃子得到最小值为:" + n);

return;

}

}

}

}

【程序42】 Test4.java

题目:809*??=800*??+9*??+1

其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

注:这道题很有问题啊。没有结果~~~好生郁闷,看我的两种理解吧第一种:所有的??代表同一个数

javapackage test50;

/**

* @author VellBibi

*【程序42】 Test4.java

*题目:809*??=800*??+9*??+1

*其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

*/

public class Test4 {

public static void main(String[] args) {

for(int i=10; i<100 && 8*i<100 && 9*i<1000; i++){

if(809*i == (800*i + 9*i + 1)){

System.out.println("??代表的两位数:" + i);

System.out.println("809*??后的结果" + i*809);

return;

}

}

System.out.println("没有符合的数");

}

}

第二种:所有的??都不同

javapackage test50;

/**

* @author VellBibi

*【程序42】 Test4.java

*题目:809*??=800*??+9*??+1

*其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

*/

public class Test4_1 {

public static void main(String[] args) {

for(int i=10; i<100; i++){

for(int j=10; j<100 && 8*j<100; j++){

for(int l=10; l<100 && 9*l<1000; l++){

if(809*i == 800*j + 9*l + 1){

System.out.println("809*"+i+"== 800*"+j+"+ 9*"+l+"+ 1");

System.out.println("809*??后的结果" + i*809);

return;

}

}

}

}

System.out.println("没有符合的数");

}

}

【程序43】 Test5.java

题目:求0—7所能组成的奇数个数。

注:当有一位数时:有1.3.5.7这4个奇数

当有两位数时:最高为有7种(除0)选择,最低为有4(1.3.5.7为奇数的条件)种  总数为4*7

当有三位数时:最高为有7中(除0)选择,第二位有8中选择,最后一位4种(1.3.5.7) 总数 4*8*7

当有四位数时:最高为有7中(除0)选择,第三位有8中选择,第二位有8中选择,最后一位4种(1.3.5.7) 总数 4*8*8*7

*

*

*

依次类推

javapackage test50;

/**

* @author VellBibi

*【程序43】 Test5.java

*题目:求0—7所能组成的奇数个数。

* 注:当有一位数时:有1.3.5.7这4个奇数

* 当有两位数时:最高为有7种(除0)选择,最低为有4(1.3.5.7为奇数的条件)种 总数为4*7

* 当有三位数时:最高为有7中(除0)选择,第二位有8中选择,最后一位4种(1.3.5.7) 总数 4*8*7

* 当有四位数时:最高为有7中(除0)选择,第三位有8中选择,第二位有8中选择,最后一位4种(1.3.5.7) 总数 4*8*8*7

*/

public class Test5 {

public static void main(String[] args) {

int cup = 7*4;//二位数

int count = cup + 4;

for(int i=2; i<8; i++){

cup = 8*cup;

count = count + cup;

}

System.out.println("0—7所能组成的奇数个数:" + count);

}

}

【程序44】 TestEven.java

题目:一个偶数总能表示为两个素数之和。

javapackage test50;

import java.util.Scanner;

/**

* @author VellBibi

*【程序44】 TestEven.java

*题目:一个偶数总能表示为两个素数之和。

*/

public class TestEven {

/**

* 判断n是不是质数

* @param n

* @return

*/

public static boolean isPrimeNumber(int n){

if(n < 2)return false;

for(int i=2; i

if(n%i == 0)

return false;

}

return true;

}

public static void main(String[] args) {

int n = new Scanner(System.in).nextInt();

if(n%2 != 0){

System.out.println("输入的不是偶数");

return;

}

for(int i=2; i

if(isPrimeNumber(i) && isPrimeNumber(n - i)){

System.out.println(n + "=" + i + "+" + (n-i));

return;

}

}

}

}

【程序45】TestPrime9.java

题目:判断一个素数能被几个9整除这个题貌是有问题吧,素数只能被1和自身整除啊,9都不是素数。。。无解

java经典50道_50道经典的JAVA编程题(41-45)相关推荐

  1. java 线程面试题_50道Java线程面试题分析及答案

    下面是Java线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编 ...

  2. 时间计算题100道_50道分式计算题,成就众多数学天才,你值得拥有?

    文末有获取电子版方法 干货!!! 话不多说,数学知识局为各位准备了期末复习或者巩固训练用的<50道分式计算题>,请看题: 要想获取本文电子版文档,添加作者微信好友(微信号:Sobolev1 ...

  3. java把一段英文拆成单词_java编程题,输入一段英文文章,单词之间都已经用空格分隔,本人想以每5个单词为一行输出,怎么写?请指教...

    我的问题是不会输出5个单词为一行.求指导!!我的代码是以下:importjava.io.*;importjava.util.*;publicclassTest2{publicstaticvoidmai ...

  4. Java词向量比较字符串相似度_Sequence Model-week2编程题1-词向量的操作【余弦相似度 词类比 除偏词向量】...

    1. 词向量上的操作(Operations on word vectors) 因为词嵌入的训练是非常耗资源的,所以ML从业者通常 都是 选择加载训练好 的 词嵌入(Embedding)数据集.(不用自 ...

  5. 京东校招java笔试题_京东2018校招技术笔试编程题汇总

    1.回文 分析 暴力枚举一下check回文,可以确定出最后答案的一半,就可以得到答案了. 参考代码 #include using namespace std; bool isPalindrome(st ...

  6. java使用三种循环打印99表_编程题:利用for循环打印 9*9 表

    # 利用for循环打印 9*9 表? 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 ...

  7. 2018深信服java笔试题_深信服2018秋招编程题

    第一题: 其中,reverse函数的代码实现如下: 1. unsigned int reverse(unsigned int num) { unsigned int ans = 0; for (int ...

  8. 早知道不做java了肚子好饿,面试所遇到的编程题 肚子好饿早知道不学java.jpg

    1.实现反转 比如输入abc输出cba public static void main(String[] args) { // TODO Auto-generated method stub Scan ...

  9. Java基础50道经典练习题

    一.基础问答15题 1.[基本概念问答] 请问Java语言是跨平台的吗?JVM是跨平台的吗?为什么? 答: Java语言是跨平台的,JVM是不跨平台的. Java能跨平台正是以JVM不跨平台为代价的. ...

最新文章

  1. Go 领军人物谢孟军:智能制造渴望银弹,首先要摒弃偏见
  2. 【HTML5】标记文字
  3. Makefile选项 CFLAGS LDFLAGS
  4. Java基础:面向对象
  5. 在 VS Code 中轻松 review GitHub Pull Requests
  6. JavaFX技巧14:StackPane子项-隐藏但不消失
  7. 11g oracle xe启动_详解Oracle等待事件的分类、发现及优化
  8. LIBCMTD.lib与libcpmtd冲突的解决方法。
  9. ip、url威胁情报库(开源)
  10. 大型网站的可伸缩性架构如何设计?
  11. Python中的GIL锁
  12. 华为nova 4e 3月14日发布:麒麟710+3200万前摄
  13. 联通引入乐phone:联想欲克隆PC成功模式
  14. 如何安装Exchange2010上安装更新汇总(Update Rollup)
  15. 不小心将.gitignore中标记忽略类型的文件提交到了远端仓库,怎么办?
  16. MySQL卸载不干净-MySQL Connector Net xxx文件怎么也删除不了?一招解决它
  17. 利用LU分解法的多项式拟合实验
  18. 深大校园网掉线/Drcom掉线/使校园网保持在线V2.0+Linux端Drcom登录方法(宿舍区教学区)
  19. Nature综述:人类微生物培养及培养组学culturomics
  20. 5年,从5元到500万,我的创业经历(转自VFP精英站,未完)

热门文章

  1. 解秘 Node.js 单线程实现高并发请求原理,以及串联同步执行并发请求的方案
  2. PHP进行图片下载的时候,出现图片损坏,无法打开(实质原因,多输出了一个空白字符ZWNBSP )
  3. 源码面前没有秘密,推荐 9 个带你阅读源码的开源项目
  4. mapreduce运行模式
  5. k8s部署mysql集群(statefulset):主写从读、一主多从集群
  6. MySQL主从复制详细配置步骤及复制延时问题解决
  7. Java Stack栈类详解
  8. SQL update select结合语句详解及应用
  9. jQuery easyUI--tabs选项卡面板
  10. centos打显卡驱动命令_在Linux系统下安装Nvidia官方显卡驱动的方法