前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编程题7-12答案

编程题7-12答案

作者头像
三哥
发布2018-06-15 13:42:24
5780
发布2018-06-15 13:42:24
举报
文章被收录于专栏:java工会java工会
  1. 验证“鬼谷猜想”:对任意自然数,若是奇数,就对它乘以 3 再加 1;若是偶数,就对它除以 2,这样得到一个新数,再按上述计算规则进行计算,一直进行下去,最终必然得到 1 public class HomeWork13 { public static void main(String[] args) { /* * 验证“鬼谷猜想”:对任意自然数,若是奇数, * 就对它乘以3再加1;若是 偶数,就对它除以2, * 这样得到一个新数, * 再按上述计算规则进行计算, * 一直进 行下去,最终必然得到1。 */ int num; Random rd = new Random(); //Integer.MAX_VALUE为最大的整数 num = 1 + rd.nextInt(Integer.MAX_VALUE);//产生数的范围-2[31]----2[31]-1 //System.err.println(rd.nextInt(100));//产生数>=0且<100 System.out.println("原本的数为" + num); while (num != 1) { System.out.println("产生的新数是" + num); if (num % 2 == 0) { //偶数 num = num / 2; } else { num = num * 3 + 1; } } System.out.println(num); } }
  2. 编程求 1~10000 之间的所有“完全数”,完全数是该数的所有因子之和等于该数的数。例如,6 的因子有 1、2、3,且 6=1+2+3,所以 6 是完全数 public class Test { public static boolean isyinzi(int num) { int sum = 0; //判断一个整数是不是一个完全数 for (int d = num - 1; d >= 1; d--) { if (num % d == 0) { sum += d; } } return sum == num; } public static void main(String[] args) { /* * 编程求1~10000之间的所有“完全数”, * 完全数是该数的所有因子之和等 * 于该数的数。例如,6的因子有1、2、3, * 且6=1+2+3,所以6是完全数*/ for (int a = 1; a <= 1000; a++) { int num = a; if (isyinzi(num)) { System.out.println(num); } } }
  3. 猴子吃桃问题。猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第 10 天在想吃的时候就剩一个桃子了,求第一天共摘下来多少个桃子 public class Test { public static void main(String[] args) { int total = 1; int day = 10; for (int i = 10; i > 0; i--) { System.out.println("第" + day + "天,有桃子" + total + "颗"); total = (total + 1) * 2; day--; } }
  4. 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)。编程求出所有三位的水仙花数 public class Test { public static void main(String[] args) { for (int num = 100; num < 1000; num++) { if (isshuixian(num)) { System.out.println(num); } } } //判断一个数是不是水仙花数 public static boolean isshuixian(int num) { int b = num / 100; int s = num % 100 / 10; int g = num % 10; return Math.pow(b, 3) + Math.pow(s, 3) + Math.pow(g, 3) == num ? true : false; } }
  5. 古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少 public class Test { /* * 古典问题:有一对兔子, * 从出生后第3 个月起每个月都生一对兔子, * 小兔 子长到第三个月后每个月又生一对兔子, * 假如兔子都不死, * 问每个月的兔子总数 为多少? */ public int rubbit(int mon) { if (mon <= 2) { return 1; } else { return rubbit(mon - 1) + rubbit(mon - 2); } } public static void main(String[] args) { int r = 1; int rr = 1; int rrr = 1; System.out.println("方法一:"); for (int a = 1; a <= 12; a++) { //12个月 if (a <= 2) { r = 1; } else { //当前月等于前两个月之和 r = rr + rrr; rrr = rr; rr = r; } System.out.println(r * 2); } System.out.println("方法二,求指定月份的兔子数量:"); HomeWork19 jisuan = new HomeWork19(); System.out.println("请输入月份:"); Scanner sc = new Scanner(System.in); int yue = sc.nextInt(); System.out.println(yue + "月份的兔子数量是" + (jisuan.rubbit(yue)) * 2); } }
  6. 将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5 public class Test { public static void main(String[] args) { System.out.println("请输入一个整数:"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); System.out.println(num + "的质因数有:"); for (int i = 2; i < num; i++) { while (num % i == 0) { num /= i; System.out.print(i + " "); } } System.out.print(" " + num); } }
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java工会 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档