查看完整版本: [-- 请各位前辈与学长为小弟解决问题. --]

风信Java论坛 ›› Java 基础开发 ›› 请各位前辈与学长为小弟解决问题. 登录 -> 注册

1F 请各位前辈与学长为小弟解决问题.   大俗 Post by : 2008-10-15 18:32:07.0

NO.1

1 2 3 4,
组成不重复的三位数,
能组成多少.
各是什么.
 

 

NO.2

三个值
x y z,
在java控制台中输出的量要求从大到小排列.

 

NO.3

一对刚出生的兔子,每只兔子每过三个月就能生下一对兔子,假设兔子不会死去,不考虑生过兔子的兔子不能继续生产,
问一年中每个月兔子的总数.
 

希望各位前辈百忙抽空帮小弟解决这些学习中遇到的问题,(小弟只学到for循环来)希望能用for循环解决.

另外,我想拜一位愿意带我的高手为老师.

 

加qq,258040151

 

2F    大俗 Post by : 2008-10-15 18:41:44.0
抱歉,NO.3出现错误,兔子过3个月后,每过一个月就能生出一对兔子.em04
3F    唧唧 Post by : 2008-10-15 20:09:57.0

NO.1

用循环实现:

   java代码
  1. public class Test {  
  2.  
  3.     /**  
  4.      * @param args  
  5.      */ 
  6.     public static void main(String[] args) {  
  7.         // TODO Auto-generated method stub  
  8.         int n=0;  
  9.         for (int i = 1; i < 5; i++){  
  10.             for (int j = 1; j < 5; j++){  
  11.                 for (int k = 1; k < 5; k++) {  
  12.                     if (i != k && i != j && j != k) {// i,j,k不能相同  
  13.                         int sum = i*100 + j*10 + k;  
  14.                         n++;  
  15.                         System.out.println(n+":"+sum);  
  16.                     }  
  17.                 }  
  18.             }  
  19.         }  
  20.     }  

结果:

1:123
2:124
3:132
4:134
5:142
6:143
7:213
8:214
9:231
10:234
11:241
12:243
13:312
14:314
15:321
16:324
17:341
18:342
19:412
20:413
21:421
22:423
23:431
24:432
 

一共24个

4F Re:请各位前辈与学长为小弟解决问题.   唧唧 Post by : 2008-10-15 20:24:08.0

NO.2 典型的冒泡法算法排序题目:

   java代码
  1. public class Test {  
  2.  
  3.     /**  
  4.      * @param args  
  5.      */ 
  6.     public static void main(String[] args) {  
  7.         // TODO Auto-generated method stub  
  8.         int[] array = {13,105,88 };// x y z  
  9.         int n = array.length;  
  10.         for(int j = n - 1; j > 0; j--) {  
  11.             for(int i = 0; i < j; i++) {  
  12.                 if(array[i] < array[i + 1]) {  
  13.                     int temp = array[i];  
  14.                     array[i] = array[i+1];  
  15.                     array[i+1] = temp;  
  16.                 }  
  17.             }  
  18.         }  
  19.           
  20.         for(int i=0;i<n;i++){  
  21.             System.out.println(array[i]);  
  22.         }  
  23.     }  

结果:

105
88
13
 

5F Re:请各位前辈与学长为小弟解决问题.   唧唧 Post by : 2008-10-15 20:37:05.0

NO.3 懒得算了,网上找的,你自己琢磨一下哦:

   java代码
  1. public class Test {  
  2.  
  3.     /**  
  4.      * @param args  
  5.      */ 
  6.     public static void main(String[] args) {  
  7.         // TODO Auto-generated method stub  
  8.         int n = 0;  
  9.           
  10.         while (n < 3) {  
  11.             GetKey gk = new GetKey();  
  12.             n = gk.getN();  
  13.         }  
  14.         int[] a = new int[n];  
  15.         a[0] = 1;  
  16.         a[1] = 1;  
  17.         for (int i = 2; i < n; i++) {  
  18.             a[i] = a[i - 1] + a[i - 2];  
  19.         }  
  20.         System.out.println(n+" 月份共有 "+a[n - 1]+" 只兔子");  
  21.  
  22.     }  
  23. }  
  24.  
  25. // 实现对用户输入内容的控制,并获取n  
  26. class GetKey {  
  27.     private int pos;  
  28.     private String bufNum = "";  
  29.     private byte[] buff = new byte[10];  
  30.     private int n;  
  31.     private int info;  
  32.  
  33.     public int getN() {  
  34.         System.out.println("请输入你想知道第__月的兔子的总数(n>2),输入数字后按Enter键:");  
  35.         while (true) {  
  36.             try {  
  37.                 info = System.in.read();  
  38.             } catch (Exception e) {}  
  39.             if (info == '\n' || info == '\r') {  
  40.                 bufNum = new String(buff, 0, pos);  
  41.                 try {  
  42.                     n = Integer.parseInt(bufNum);  
  43.                 } catch (Exception e) {  
  44.                     n = 1;  
  45.                 }  
  46.                 break;  
  47.             } else {  
  48.                 buff[pos++] = (byte) info;  
  49.             }  
  50.         }  
  51.         return n;  
  52.     }  
  53. }  

结果:

请输入你想知道第__月的兔子的总数(n>2),输入数字后按Enter键:
8
8 月份共有 21 只兔子

其中 这里是重点:

int[] a = new int[n];
  a[0] = 1;
  a[1] = 1;
  for (int i = 2; i < n; i++) {
   a[i] = a[i - 1] + a[i - 2];
  }

a[i]  的值 就是 第n-1月份的兔子总数,累加计算

6F    大俗 Post by : 2008-10-16 19:38:58.0
谢谢..em04

风信Java论坛 ›› Java 基础开发 ›› 请各位前辈与学长为小弟解决问题. 登录 -> 注册

查看完整版本: [-- 请各位前辈与学长为小弟解决问题. --]
CopyRight © 2008-2009 JavaWind.Net Studio All Rights Reserved
Powered By JWind.BBS Vesion 1.0.0 Beta1 Processed in 9 ms,0 (Queries)  Gzip enabled
粤ICP备07511478号