A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Just_Only 高级黑马   /  2013-6-29 20:26  /  5522 人查看  /  70 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Just_Only 于 2013-7-6 20:01 编辑

{:soso__16865118374220378461_1:}相聚即是缘分,珍惜每分每秒,为了心中梦想,我们永不言弃。
要求:
      1.题目要自己做出来,要写明思路和步骤(可以合在一起){:soso__5462389604067913156_1:}
      2.将程序写的清晰明了,注释到位.
      3.回复的时候把代码和运算后结果的图片一起贴出来,
         不会弄图片的贴出结果来,不要蒙混过关,我会检查的,不合格者不给于技术分哦
      4.需要写出完整代码,不要用几句术语草草了事。
      5.代码放到代码块中,不要压缩包(压缩包没分)
      6.要写注释,没注释的没分...
      7.对于本次活动的题目或是加分,存在异议的可以联系我。。。有奖励的哦...
加分说明:
             题目总共三题,所得技术分是所做题的个数,但是如果所做题精简并且排版较好可能会有一分的技术奖励。

           (说明:如果前期没有完全做完而后续补充上,那么将撤销前期的加分而另行给分,如果有问题请看要求7)
附加:      
       题目不是很难主要是在于综合,每周日更新(持续几周不定)
   
   不说多的啦,上题目的啦,大家踊跃参加的啊,你的支持是我们服务的最大动力哦。
题目:
      1.两个兵乓球队进行比赛,各出三个人。各队选手的编号均为1号,2号,3号,抽签决定比赛名单,有人向队员打听比赛的名单。
         甲队1号说不和乙队的1号比,甲队的3号说不和乙队的1号和3号比,请编程找出两队的赛手名单。
      2.打印出所有三位数中即是水仙数又是回文数的数,如果没有这个数那么输出所有的水仙数。
         水仙数是指一个三位数,其个位数立方和等于本身,例如:153=1[sup]3[/sup]+5[sup]3[/sup]+3[sup]3[/sup]
         回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231。
      3.打印出100到200之间中即不是回文数又不是素数又不是水仙数的所有数的和。

评分

参与人数 1技术分 +1 黑马币 +6 收起 理由
神之梦 + 1 + 6 辛苦了

查看全部评分

70 个回复

正序浏览
第一题
import java.util.*;
class ten{
    public static void main(String [] args)
{
        int i,j,k;   /*i是甲队1号的对手,j是甲队2号的对手,k是甲队3号的对手*/
String[] num = {"乙队1号","乙队2号","乙队3号"};
        for(i=0;i<=2;i++)
        for(j=0;j<=2;j++){
            if(i!=j)
            for(k=0;k<=2;k++){
                if(i!=k && j!=k){
                    if(i!=0 && k!=0 && k!=2 ) /*甲队1号说不和乙队的1号比,甲队的3号说不和乙队的1号和3号比*/
                    System.out.println(" 甲队1号   Vs   "+num+"\n 甲队2号   Vs   "+num[j]+"\n 甲队3号   Vs   "+num[k]);
                }
            }
        }
    }
}
运算结果:


第二题

class eleven
{
public static void main(String[] agrs)
{
int n=0;
for (int i = 100; i <=999; i++) //求出三位数
{
int a = i / 100;
int b = i / 10 % 10;
int c = i % 10;
if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == i&&a==c)//如果同时水仙花和回文数
{
n+=1;
System.out.println("水仙花和回文数 : " +i);}
if(Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == i&&n==0)//如果不存在回文数,直接打印水仙花数
System.out.println("水仙花数 : " +i);
  }
}
}
运算结果:

第三题

class twelve
{
public static void main(String [] args)
{
int s=0;                       
  for(int i = 100;i<=200;i++)//for循环 100-200间的所有素数(质数)
{
   if(isZhiShu(i)==false)
{
//调用isZhiShu(int number)方法,返回true
int a = i / 100;
int b = i / 10 % 10;
int c = i % 10;
if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) != i||a!=c)//如果同时不是水仙花或者回文数
{
s+=i;//求和
}
   }
  }
System.out.println("总和" +s);//打印出100到200之间中即不是回文数又不是素数又不是水仙数的所有数
的和
}
public static boolean isZhiShu(int number)
{
//判断是否是质数的方法
  if(number==1)
{
   return false;
  }
  for(int i = 2;i<number;i++)
{
   if(number%i == 0)
{
    return false;
   }
  }
  return true;
}
}
思路:先用递归判断是否是素数,然后再判断回文数和水仙花数,然后求和 打印
结果:

回复 使用道具 举报
惭愧啊 之前结果一题没对  但出错不怕,重要的是要知道原因!
debug了下:
第一题 是因为头开始用xyz表示乙队了后来想都可以用数字,循环的xyz改了下面条件忘了。
          原程序if (i != ‘x’ && k != ‘y’ && k != ‘z’)改为if (i != 1 && k != 1 && k != 3)就行了。
第二题 要求打印如果没有这个数那么输出所有的水仙数。 我给打印回文数了。。。
          原程序if (huiwen(i))  huiWenNums.add(i);改为if (shuiXian(i))   shuiXianNums.add(i);
第三题  判断素数循环条i <Math.sqrt(num)  改为for (int i = 2; i <= Math.sqrt(num); i++),这个导致少了一个169=13*13 的数字
总结:虽然思路对,但是小错误导致大问题。要多练,多测试。共勉!
  1. package com.share.eclipse;

  2. import java.awt.List;
  3. import java.util.ArrayList;

  4. import org.junit.Test;

  5. public class test {
  6.         // 1.两个兵乓球队进行比赛,各出三个人。各队选手的编号均为1号,2号,3号,抽签决定比赛名单,有人向队员打听比赛的名单。
  7.         // 甲队1号说不和乙队的1号比,甲队的3号说不和乙队的1号和3号比,请编程找出两队的赛手名单。
  8.         // 2.打印出所有三位数中即是水仙数又是回文数的数,如果没有这个数那么输出所有的水仙数。
  9.         // 水仙数是指一个三位数,其个位数立方和等于本身,例如:153=13+53+33
  10.         // 回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231。
  11.         // 3.打印出100到200之间中即不是回文数又不是素数又不是水仙数的所有数的和。

  12.         public static void main(String[] args) {
  13.                 System.out.println("第1题");
  14.                 test1();
  15.                 System.out.println("第2题");
  16.                 test2();
  17.                 System.out.println();
  18.                 System.out.println("第3题");
  19.                 test3();
  20.         }

  21.         static void test1() {
  22.                 int[] A = new int[3]; // A[0],A[1],A[2]表示甲队1,2,3球员。其值表示乙队对手编号。
  23.                 int i, j, k;
  24.                 for (i = 1; i <= 3; i++)
  25.                         for (j = 1; j <= 3; j++) {
  26.                                 // 甲队1号和甲队2号对手不重
  27.                                 if (i != j)
  28.                                         for (k = 1; k <= 3; k++) {
  29.                                                 // 甲队1号和甲队3号对手不重,甲队2号和甲队3号对手不重
  30.                                                 if (i != k && j != k) {
  31.                                                         // 甲队1号说不和乙队的1号比,甲队的3号说不和乙队的1号和3号比
  32.                                                         if (i != 1 && k != 1 && k != 3) {
  33.                                                                 A[0] = i;
  34.                                                                 A[1] = j;
  35.                                                                 A[2] = k;
  36.                                                         }
  37.                                                 }
  38.                                         }
  39.                         }
  40.                 System.out.println("甲队1 VS 乙队" + A[0]);
  41.                 System.out.println("甲队2 VS 乙队" + A[1]);
  42.                 System.out.println("甲队3 VS 乙队" + A[2]);
  43.         }

  44.         static void test2() {
  45.                 boolean flag = false; // 标志是否有水仙数&&回文
  46.                 ArrayList<Integer> shuiXianNums = new ArrayList<Integer>(); // 记录回文数
  47.                 for (int i = 100; i < 1000; i++) {
  48.                         if (shuiXian(i) && huiWun(i)) {
  49.                                 System.out.println(i);
  50.                                 flag = true;
  51.                                 continue;
  52.                         }
  53.                         if (shuiXian(i))
  54.                                 shuiXianNums.add(i);
  55.                 }
  56.                 int j = 0;
  57.                 if (!flag)
  58.                         for (Integer i : shuiXianNums) {
  59.                                 if (j == 10) { // 控制每行打印10个数字
  60.                                         System.out.println();
  61.                                         j = 0;
  62.                                 }
  63.                                 System.out.print(i + "  ");
  64.                                 j++;
  65.                         }
  66.         }

  67.         static void test3() {
  68.                 int sum = 0;
  69.                 int j = 0;
  70.                 for (int i = 100; i <= 200; i++) {
  71.                         if (!shuiXian(i) && !huiWun(i) && !shuShu(i)) {
  72.                                 System.out.print(i + "  ");
  73.                                 j++;
  74.                                 if (j == 10) {
  75.                                         System.out.println();
  76.                                         j = 0;
  77.                                 }
  78.                                 sum += i;
  79.                         }
  80.                 }
  81.                 System.out.println("总的::"+sum);
  82.         }

  83.         // 判断是否水仙数
  84.         static boolean shuiXian(int num) {
  85.                 char[] A = String.valueOf(num).toCharArray(); // int转换为char[]
  86.                 int baiWei = A[0] - '0';
  87.                 int shiWei = A[1] - '0';
  88.                 int geWei = A[2] - '0';
  89.                 return num == (int) (Math.pow(baiWei, 3) + Math.pow(shiWei, 3) + Math.pow(geWei, 3));
  90.         }

  91.         // 判断是否回文数
  92.         static boolean huiWun(int num) {
  93.                 char[] A = String.valueOf(num).toCharArray(); // int转换为char[]
  94.                 for (int i = 0; i < A.length / 2; i++) {
  95.                         if (A[i] == A[A.length - 1 - i])
  96.                                 continue;
  97.                         else
  98.                                 return false;
  99.                 }
  100.                 return true;
  101.         }

  102.         static boolean shuShu(int num) { // 判断是否是素数
  103.                 if (2 == num)
  104.                         return true;
  105.                 for (int i = 2; i <= Math.sqrt(num); i++) {
  106.                         if (num % i == 0)
  107.                                 return false;
  108.                 }
  109.                 return true;
  110.         }

  111. }
复制代码
第1题
甲队1 VS 乙队3
甲队2 VS 乙队1
甲队3 VS 乙队2
第2题
153  370  371  407  
第3题
100  102  104  105  106  108  110  112  114  115  
116  117  118  119  120  122  123  124  125  126  
128  129  130  132  133  134  135  136  138  140  
142  143  144  145  146  147  148  150  152  154  
155  156  158  159  160  162  164  165  166  168  
169  170  172  174  175  176  177  178  180  182  
183  184  185  186  187  188  189  190  192  194  
195  196  198  200  总的::11125
回复 使用道具 举报

public class Test2 {

        /**
         * 第二题
         */
       
        第二题代码
        public static void main(String[] args) {
                int number=0;
                int verseNumber=0;
                boolean flag=false;
                for(int i=1;i<10;i++)
                {
                        for(int j=0;j<10;j++)
                        {
                                for(int k=0;k<10;k++)
                                {
                                        number=i*100+j*10+k;
                                        verseNumber=k*100+j*10+i;
                                        if(number==verseNumber&&(Math.pow(i, 3)+Math.pow(j, 3)+Math.pow(k, 3))==number)
                                        {
                                                flag=true;
                                                System.out.println("即是水仙数又是回文数的数");
                                                System.out.println(number);
                                        }
                                }
                        }
                }

               
                if(!flag)
                {
                        System.out.println("水仙花数有");
                        System.out.println(number);
                }
        }

}




回复 使用道具 举报
第二题代码:

public class Test2 {

        /**
         * 第二题
         */
       
       
        public static void main(String[] args) {
                int number=0;
                int verseNumber=0;
                boolean flag=false;
                for(int i=1;i<10;i++)
                {
                        for(int j=0;j<10;j++)
                        {
                                for(int k=0;k<10;k++)
                                {
                                        number=i*100+j*10+k;
                                        verseNumber=k*100+j*10+i;
                                        if(number==verseNumber&&(Math.pow(i, 3)+Math.pow(j, 3)+Math.pow(k, 3))==number)
                                        {
                                                flag=true;
                                                System.out.println("即是水仙数又是回文数的数");
                                                System.out.println(number);
                                        }
                                }
                        }
                }

               
                if(!flag)
                {
                        System.out.println("水仙花数有");
                        System.out.println(number);
                }
        }

}


运行结果

截图01.jpg (67.4 KB, 下载次数: 0)

第一题代码

第一题代码

截图00.jpg (24.64 KB, 下载次数: 0)

第一题运行结果

第一题运行结果

截图02.jpg (27.47 KB, 下载次数: 0)

第2题运行结果

第2题运行结果
回复 使用道具 举报
图片怎么贴啊?
回复 使用道具 举报
C:\Users\shilinhu\Desktop\截图01.jpg
C:\Users\shilinhu\Desktop\截图00.jpg
回复 使用道具 举报
  1. import java.util.ArrayList;
  2. import java.util.HashMap;
  3. import java.util.HashSet;
  4. import java.util.Iterator;
  5. import java.util.List;
  6. import java.util.Set;



  7. /**
  8. *
  9. */

  10. /**
  11. * @author Administrator
  12. *
  13. */
  14. public class Exam {
  15.         public static void nameList(){
  16.                 int[] arrays=new int[]{1,2,3};//乙队队员
  17.                 boolean[] flags=new boolean[]{false,false,false};//乙队队员是否已经被选中
  18.                 for(int i=0;i<3;i++)//找到乙队中不是1号也不是3号的队员
  19.                         if(arrays[i]!=1&&arrays[i]!=3)
  20.                         {
  21.                                 System.out.println("甲队3号选手的对手是乙队"+arrays[i]+"号");
  22.                                 flags[i]=true;//2号队员被选中
  23.                         }
  24.                 for(int i=0;i<3;i++)//乙队中不是一号且没有被选中的队员
  25.                         if(arrays[i]!=1&&!flags[i])
  26.                         {
  27.                                 System.out.println("甲队1号选手的对手是乙队"+arrays[i]+"号");
  28.                                 flags[i]=true;//3号队员被选中
  29.                         }               
  30.                 for(int i=0;i<3;i++)//乙队中没有被选中的队员
  31.                         if(!flags[i])
  32.                         {
  33.                                 System.out.println("甲队2号选手的对手是乙队"+arrays[i]+"号");
  34.                                 flags[i]=true;//1号队员被选中
  35.                         }
  36.         }

  37.         /**
  38.         @function:
  39.          * @data:2013-7-6上午10:02:11
  40.          * @author csl
  41.          */
  42.         private static void question3() {       
  43.                 int sum=0;
  44.                 for(int i=100;i<=200;i++)
  45.                 {
  46.                         int hundred=i/100;
  47.                     int ten=i/10-hundred*10;
  48.                     int one=i%10;
  49.                     if(!check1(hundred,ten,one,i)&&!check2(hundred,one)&&!check3(i))//即不是回文数又不是素数又不是水仙数
  50.                             sum+=i;
  51.                 }
  52.                 System.out.println("第三题的答案是:"+sum);
  53.         }
  54.         /**
  55.         @function:
  56.          * @data:2013-7-6上午10:05:15
  57.          * @author chenyanli
  58.          * @param i
  59.          * @ 判断是否为素数
  60.          */
  61.         private static boolean check3(int i) {
  62.                 for(int j=2;j<i/2;j++)
  63.                         if(i%j==0)
  64.                                 return false;
  65.                 return true;
  66.         }
  67.         /**
  68.         @function:
  69.          * @data:2013-7-6上午9:42:50
  70.          * @author csl
  71.          */
  72.         private static void question2() {
  73.                 List<Integer> list=new ArrayList<Integer>();//水仙数存储
  74.                 List<Integer> list1=new ArrayList<Integer>();//水仙数和回文数
  75.                 for(int i=100;i<1000;i++){
  76.                         int hundred=i/100;
  77.                         int ten=i/10-hundred*10;
  78.                         int one=i%10;
  79.                         if(check1(hundred,ten,one,i)){//是否水仙数
  80.                                 list.add(i);
  81.                                 if(check2(hundred,one))//是否回文数
  82.                                         list1.add(i);
  83.                         }
  84.                 }
  85.                 if(!list1.isEmpty())
  86.                         for(int i :list1)
  87.                                 System.out.println(i);
  88.                 else
  89.                         for(int i :list)
  90.                                 System.out.println(i);
  91.                
  92.         }
  93.         /**
  94.         @function:
  95.          * @data:2013-7-6上午9:55:12
  96.          * @author chenyanli
  97.          * @param hundred
  98.          * @param one
  99.          * 判断是否为回文数
  100.          */
  101.         private static boolean check2(int hundred, int one) {
  102.                 return hundred==one;
  103.         }
  104.         /**
  105.         @function:
  106.          * @data:2013-7-6上午9:51:07
  107.          * @author chenyanli
  108.          * @param hundred
  109.          * @param ten
  110.          * @param one
  111.          *
  112.          * 判断是否为水仙数
  113.          */
  114.         private static boolean check1(int hundred, int ten, int one,int i) {
  115.                 int sum=one*one*one+ten*ten*ten+hundred*hundred*hundred;
  116.                 return sum==i;
  117.         }
  118.         public static void main(String[] args) {
  119.                 nameList();//第一题
  120.                 System.out.println("第二题答案");
  121.                 question2();//第二题
  122.                 question3();//第三题
  123.         }

  124. }
复制代码
运行结果为:
甲队3号选手的对手是乙队2号
甲队1号选手的对手是乙队3号
甲队2号选手的对手是乙队1号
第二题答案
153
370
371
407
第三题的答案是:11125

评分

参与人数 1技术分 +3 收起 理由
张勇1993 + 3 很给力!

查看全部评分

回复 使用道具 举报
  1. public class test {
  2.         // 1.两个兵乓球队进行比赛,各出三个人。各队选手的编号均为1号,2号,3号,抽签决定比赛名单,有人向队员打听比赛的名单。
  3.         // 甲队1号说不和乙队的1号比,甲队的3号说不和乙队的1号和3号比,请编程找出两队的赛手名单。
  4.         // 2.打印出所有三位数中即是水仙数又是回文数的数,如果没有这个数那么输出所有的水仙数。
  5.         // 水仙数是指一个三位数,其个位数立方和等于本身,例如:153=13+53+33
  6.         // 回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231。
  7.         // 3.打印出100到200之间中即不是回文数又不是素数又不是水仙数的所有数的和。

  8.         public static void main(String[] args) {
  9.                 System.out.println("第1题");
  10.                 test1();
  11.                 System.out.println("第2题");
  12.                 test2();
  13.                 System.out.println("第3题");
  14.                 test3();
  15.         }

  16.         static void test1() {
  17.                 int[] A = new int[3]; // A[0],A[1],A[2]表示甲队1,2,3球员。其值表示乙队对手编号。
  18.                 int i, j, k;
  19.                 for (i = 1; i <= 3; i++)
  20.                         for (j = 1; j <= 3; j++) {
  21.                                 // 甲队1号和甲队2号对手不重
  22.                                 if (i != j)
  23.                                         for (k = 1; k <= 3; k++) {
  24.                                                 // 甲队1号和甲队3号对手不重,甲队2号和甲队3号对手不重
  25.                                                 if (i != k && j != k) {
  26.                                                         // 甲队1号说不和乙队的1号比,甲队的3号说不和乙队的1号和3号比
  27.                                                         if (i != 'x' && k != 'x' && k != 'z') {
  28.                                                                 A[0] = i;
  29.                                                                 A[1] = j;
  30.                                                                 A[2] = k;
  31.                                                         }
  32.                                                 }
  33.                                         }
  34.                         }
  35.                 System.out.println("甲队1 VS 乙队" + A[0]);
  36.                 System.out.println("甲队2 VS 乙队" + A[1]);
  37.                 System.out.println("甲队3 VS 乙队" + A[2]);
  38.         }

  39.         static void test2() {
  40.                 boolean hasShuixian = false; // 标志是否有水仙数
  41.                 ArrayList<Integer> huiWunNums = new ArrayList<Integer>(); // 记录回文数
  42.                 for (int i = 100; i < 1000; i++) {
  43.                         if (shuiXian(i) && huiWun(i)) {
  44.                                 System.out.println(i);
  45.                                 hasShuixian = true;
  46.                                 continue;
  47.                         }
  48.                         if (huiWun(i))
  49.                                 huiWunNums.add(i);
  50.                 }
  51.                 int j = 0;
  52.                 if (!hasShuixian)
  53.                         for (Integer i : huiWunNums) {
  54.                                 if (j == 10) { // 控制每行打印10个数字
  55.                                         System.out.println();
  56.                                         j = 0;
  57.                                 }
  58.                                 System.out.print(i + "  ");
  59.                                 j++;
  60.                         }
  61.         }

  62.         static void test3() {
  63.                 int sum = 0;
  64.                 for (int i = 100; i <= 200; i++) {
  65.                         if (!shuiXian(i) && !huiWun(i) && !shuShu(i))
  66.                                 sum += i;
  67.                 }
  68.                 System.out.println();
  69.                 System.out.println(sum);
  70.         }

  71.         // 判断是否水仙数
  72.         static boolean shuiXian(int num) {
  73.                 char[] A = String.valueOf(num).toCharArray(); // int转换为char[]
  74.                 return num == (int) (Math.pow(A[0], 3) + Math.pow(A[1], 3) + Math.pow(
  75.                                 A[2], 3));
  76.         }

  77.         // 判断是否回文数
  78.         static boolean huiWun(int num) {
  79.                 char[] A = String.valueOf(num).toCharArray(); // int转换为char[]
  80.                 for (int i = 0; i < A.length / 2; i++) {
  81.                         if (A[i] == A[A.length - 1 - i])
  82.                                 continue;
  83.                         else
  84.                                 return false;
  85.                 }
  86.                 return true;
  87.         }

  88.         static boolean shuShu(int num) { // 判断是否是素数
  89.                 if (2 == num)
  90.                         return true;
  91.                 for (int i = 2; i < Math.sqrt(num); i++) {
  92.                         if (num % i == 0)
  93.                                 return false;
  94.                 }
  95.                 return true;
  96.         }

  97. }
复制代码
第1题
甲队1 VS 乙队3
甲队2 VS 乙队2
甲队3 VS 乙队1
第2题
101  111  121  131  141  151  161  171  181  191  
202  212  222  232  242  252  262  272  282  292  
303  313  323  333  343  353  363  373  383  393  
404  414  424  434  444  454  464  474  484  494  
505  515  525  535  545  555  565  575  585  595  
606  616  626  636  646  656  666  676  686  696  
707  717  727  737  747  757  767  777  787  797  
808  818  828  838  848  858  868  878  888  898  
909  919  929  939  949  959  969  979  989  999  
第3题
11109

点评

没有一题是对的。。。  发表于 2013-7-6 20:28

评分

参与人数 1技术分 +1 收起 理由
张勇1993 + 1 鼓励一下

查看全部评分

回复 使用道具 举报
弱弱的问一句、这个还给不给加分了?再不加这周就快过去了、、49#的没给分呢{:soso_e149:}
回复 使用道具 举报
  1. package huodong;
  2. /**题目
  3. * 两个兵乓球队进行比赛,各出三个人。各队选手的编号均为1号,2号,3号,抽签决定比赛名单,有人向队员打听比赛的名单。
  4.          甲队1号说不和乙队的1号比,甲队的3号说不和乙队的1号和3号比,请编程找出两队的赛手名单。
  5. *
  6. *思路
  7. *设甲队三名队员为A,B,C;
  8. *  乙队单名队员为X,Y,Z;
  9. *因为加队的C和A号有条件限制,所以让C好和A号先选
  10. *通过分析c只能和Y比赛     A只能和z比赛   B只能和x比赛
  11. *通过三层循环让甲队的C  A B 一次挑选自己的对手
  12. *
  13. */
  14. public class PingPang {
  15.         public static void main(String[]args){
  16.         char i,j,k;  // i是a的对手,j是b的对手,k是c的对手
  17.         for(i='X';i<='Z';i++)
  18.         {
  19.                 for(j='X';j<='Z';j++){
  20.                     if(i!=j)
  21.                     for(k='X';k<='Z';k++){
  22.                         if(i!=k && j!=k){
  23.                             if(i!='X' && k!='X'&& k!='Z')//甲队的C不和乙队的X和Z比赛
  24.                             {
  25.                             System.out.println("--比赛安排--");
  26.                             System.out.println(" A 和"+i+" 比赛");
  27.                             System.out.println(" B 和"+j+" 比赛");
  28.                             System.out.println(" C 和"+k+" 比赛");
  29.                             }
  30.                         }
  31.                     }
  32.                 }
  33.         }
  34.     }
  35. }
复制代码

回复 使用道具 举报
解题思路都在代码里边
第一题:
代码
  1. /**
  2. * 题目1:思路就是将甲乙两队分别看成一个集合,然后对集合进行迭代,因为计算机看不懂题目,那只能我们认为的对迭代过程进行设计
  3. * 迭代的过程中,首先找到甲队第三个选手,然后再对乙迭代,找到乙中既不是1也不是3的选手,找到之后,将这两个选手信息存入HashMap集合中
  4. * 并删除原来甲乙集合中的信息,这样就题目再给的条件又可以找到下一个配对组合了。
  5. */

  6. package test;

  7. import java.util.ArrayList;
  8. import java.util.HashMap;
  9. import java.util.Iterator;
  10. import java.util.List;

  11. public class TwoTeamDemo {
  12.         public static void main(String[] args) {
  13.                 List<Integer> listA = new ArrayList<Integer>();
  14.                 List<Integer> listB = new ArrayList<Integer>();

  15.                 listA.add(1);
  16.                 listA.add(2);
  17.                 listA.add(3);

  18.                 listB.add(1);
  19.                 listB.add(2);
  20.                 listB.add(3);

  21.                 HashMap<String, String> nameList = new HashMap<String, String>();

  22.                 int a, b = 0;
  23.                
  24.                 while (listA.size() != 0) {//只要集合中还有未配对的,就要进行下面的配对代码
  25.                         for (Iterator<Integer> it = listA.iterator(); it.hasNext();) {
  26.                                 a = it.next();
  27.                                 if (a == 3) {//因为甲的第三个选手的对手最明确,应该从第三个选手开始配对
  28.                                         for (Iterator<Integer> it2 = listB.iterator(); it2
  29.                                                         .hasNext();) {
  30.                                                 b = it2.next();
  31.                                                 if (b != 1 && b != 3) {
  32.                                                         nameList.put("A:" + a, "B:" + b); //把配对信息记录到map里边
  33.                                                         it2.remove();//配对完成的选手从集合中去除
  34.                                                 }
  35.                                         }
  36.                                         it.remove();//配对完成的选手从集合中去除
  37.                                 } else if (a == 1 && listA.size() < 3) {//第三个选手配对完了之后,才开始配对第一个有条件的选手
  38.                                         for (Iterator<Integer> it2 = listB.iterator(); it2
  39.                                                         .hasNext();) {
  40.                                                 b = it2.next();
  41.                                                 if (b != 1) {
  42.                                                         nameList.put("A:" + a, "B:" + b);
  43.                                                         it2.remove();
  44.                                                 }
  45.                                         }
  46.                                         it.remove();
  47.                                 } else if (a == 2 && listA.size() < 2) {//最后剩下的就相互配对了
  48.                                         for (Iterator<Integer> it2 = listB.iterator(); it2
  49.                                                         .hasNext();) {
  50.                                                 b = it2.next();
  51.                                                 nameList.put("A:" + a, "B:" + b);
  52.                                                 it2.remove();
  53.                                         }

  54.                                         it.remove();
  55.                                 }
  56.                         }
  57.                 }
  58.                
  59.                 System.out.println(nameList);//输出配对信息

  60.         }
  61. }
复制代码
结果:
{A:3=B:2, A:1=B:3, A:2=B:1}

第二题:
代码
  1. /**
  2. * 这个题目就先弄个循环从100到1000(不包括1000),循环判断这里边的数是不是水仙数,如果是水仙数就继续判断是不是回文数
  3. * 在判断是水仙数的时候,就把它存到水仙数的集合中,是回文数,就把它存到既是水仙数又是回文数的集合中
  4. */
  5. package test;

  6. import java.util.ArrayList;

  7. public class IsOrNot {
  8.         private static ArrayList<Integer> shuiXnum = new ArrayList<Integer>();//用来装水仙数的集合
  9.         private static ArrayList<Integer> huiwenNumAndSX = new ArrayList<Integer>();//用来装水仙数回文数的集合

  10.         public static void main(String[] args) {
  11.                 for(int i=100; i<1000; i++){//用循环来一次判断100到999
  12.                         if(isShuixian(i)){
  13.                                 isHuiwen(i);
  14.                         }
  15.                 }
  16.                
  17.                 if(huiwenNumAndSX.size() == 0){//判断有没有又是水仙又是回文的数,然后输出
  18.                         System.out.println("只有水仙数:" + shuiXnum);
  19.                 }else
  20.                         System.out.println("既是回文又是水仙数:" + huiwenNumAndSX);
  21.                
  22.         }
  23.        
  24.         public static boolean isShuixian(int i){//判断是否为水仙数,怎么判断的就省去说了
  25.                 int sum = 0;
  26.                 int temp1 = i;
  27.                 while(i!= 0){                       
  28.                         sum = (i%10) * (i%10) * (i%10) + sum;
  29.                         i = i/10;
  30.                 }               
  31.                 if(sum == temp1){
  32.                         shuiXnum.add(temp1);
  33.                         return true;
  34.                 }
  35.                 return false;
  36.         }
  37.        
  38.         public static boolean isHuiwen(int i){//判断是否为回文数,怎么判断的也不说了,有返回值可以方便调试
  39.                 int temp = i;
  40.                 int sum = 0;
  41.                 while(temp != 0){
  42.                         sum = sum*10 + temp%10;
  43.                         temp = temp/10;
  44.                 }
  45.                
  46.                 if(sum == i){
  47.                         huiwenNumAndSX.add(i);
  48.                         return true;
  49.                 }
  50.                 return false;
  51.         }

  52. }
复制代码
结果:
只有水仙数:[153, 370, 371, 407]

第三题:
代码
  1. /**
  2. * 因为只要判断100到200之间的素数,所以这个判断素数的方法可以写得简单点。
  3. * 思路就是100到200循环,每个数都要判断既不是水仙又不是回文又不是素数,满足条件就加起来。
  4. */
  5. package test;

  6. public class GetSum {

  7.         public static void main(String[] args) {
  8.                 int sum = 0;
  9.                 int line = 10;  //这个变量时用来控制每行输出多少个数的
  10.                 for(int i=100; i<=200; i++){
  11.                         if(!isHuiwen(i) && !isPrime(i) && !isShuixian(i)){//判断既不是回文又不是素数又不是水仙数, &&是个短路的运算符,这里的效果还算很高的
  12.                                 System.out.print(i + "  "); //把满足条件的数都打印出来
  13.                                 line --;
  14.                                 if(line == 0){
  15.                                         System.out.println();
  16.                                         line = 10;
  17.                                 }
  18.                                 sum = sum + i;
  19.                         }                               
  20.                 }
  21.                
  22.                 System.out.println("合计:" + sum);
  23.         }
  24.        
  25.         public static boolean isShuixian(int i){//判断是否为水仙数,怎么判断的就省去说了
  26.                 int sum = 0;
  27.                 int temp1 = i;
  28.                 while(i!= 0){                       
  29.                         sum = (i%10) * (i%10) * (i%10) + sum;
  30.                         i = i/10;
  31.                 }               
  32.                 if(sum == temp1){
  33.                         return true;
  34.                 }
  35.                 return false;
  36.         }
  37.        
  38.         public static boolean isHuiwen(int i){//判断是否为回文数,怎么判断的也不说了,有返回值可以方便调试
  39.                 int temp = i;
  40.                 int sum = 0;
  41.                 while(temp != 0){
  42.                         sum = sum*10 + temp%10;
  43.                         temp = temp/10;
  44.                 }
  45.                
  46.                 if(sum == i){
  47.                         return true;
  48.                 }
  49.                 return false;
  50.         }
  51.        
  52.         public static boolean isPrime(int i){//判断是否为素数了,因为只要判断100到200,所以代码比较简单
  53.                 for(int j=2; j<=i/2; j++){
  54.                         if(i%j == 0 ){
  55.                                 return false;                               
  56.                         }
  57.                 }
  58.                
  59.                 return true;
  60.         }

  61. }
复制代码
结果:
100  102  104  105  106  108  110  112  114  115  
116  117  118  119  120  122  123  124  125  126  
128  129  130  132  133  134  135  136  138  140  
142  143  144  145  146  147  148  150  152  154  
155  156  158  159  160  162  164  165  166  168  
169  170  172  174  175  176  177  178  180  182  
183  184  185  186  187  188  189  190  192  194  
195  196  198  200  合计:11125

评分

参与人数 1技术分 +4 收起 理由
Just_Only + 4 赞一个!

查看全部评分

回复 使用道具 举报
第一题
  1. /*
  2. 需求:两个兵乓球队进行比赛,各出三个人。各队选手的编号均为1号,2号,3号,抽签决定比赛名单,有人向队员打听比赛的名单。甲队1号说不和乙队的1号比,甲队的3号说不和

  3. 乙队的1号和3号比,请编程找出两队的赛手名单。
  4. 思路:  1.定义三个变量i,j,k为乙队三名队员,保存i是甲队1号的对手,j是甲队2号的对手,k是甲队3号的对手

  5. --------------------------------
  6. 甲        i        j        k

  7. a        0                0
  8. --------------------------------
  9. b
  10. --------------------------------
  11. c                        0
  12. --------------------------------


  13.         2.按题目要求进行嵌套循环,同时满足题目要求时即为最终结果
  14. */


  15. public class Game{                                                
  16.   public static void main(String[] args) {              
  17.      
  18.         char i,j,k;//定义三个变量i,j,k为乙队三名队员,保存i是甲队1号的对手,j是甲队2号的对手,k是甲队3号的对手

  19.         for(i='a'; i<='c'; i++)                //乙队三名队员按1,2,3号顺序分别标记为a,b,c
  20.         {                               
  21.                 if(i!='a')                //条件1:甲队1号说不和乙队的1号比
  22.                 {
  23.                             for(k='a'; k<='c'; k++)               
  24.                                 if(k!='a'&&k!='c')        //甲队的3号说不和乙队的1号和3号比
  25.                                 {
  26.                                             for(j='a'; j<='c'; j++)
  27.                                                 if(i!=j&&j!=k&&k!=i)        
  28.                                                         System.out.println("甲队1号的对手是"+i+"\t"+"甲队2号的对手是"+j+"\t"+"甲队3号的对手是"+k+"\t");
  29.                         }
  30.                 }
  31.         }

  32.   }
  33. }
复制代码
第二题
  1. /*
  2. 需求:打印出所有三位数中即是水仙数又是回文数的数,如果没有这个数那么输出所有的水仙数。
  3.          水仙数是指一个三位数,其个位数立方和等于本身,例如:153=13+53+33
  4.          回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231。
  5. 思路:  1.三位数循环
  6.         2.判断是否是水仙数
  7.         3.若是水仙数,判断是否是回文数,并标识
  8.         4.若存在即是水仙数又是回文数的数,则打印输出,否则保存当前水仙数
  9. */
  10. import javax.swing.JOptionPane;
  11. public class Flower  
  12. {  
  13.         public static boolean sNumber(int i)//定义函数,判断是否是水仙数(水仙数是指一个三位数,其个位数立方和等于本身)
  14.         {
  15.                 int ge,shi,bai;
  16.                 bai=i/100;
  17.                 shi=i%100/10;
  18.                 ge=i%10;
  19.                 if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai)//满足水仙数条件,返回真
  20.                         return true;
  21.                 return false;       
  22.         }
  23.         public static boolean hNumber(int i)//定义函数,判断是否是回文数(回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231)
  24.         {
  25.                 int ge,bai;
  26.                 bai=i/100;
  27.                 ge=i%10;
  28.                 if(ge==bai)
  29.                         return true;//满足回文数条件,返回真
  30.                 return false;
  31.         }  
  32.         public static void main(String args[])  
  33.         {
  34.                 int[] s=new int[1000];//保存水仙数
  35.                 int m=0;//标识水仙数的个数
  36.                
  37.                 int n=0;//标识即是水仙数又是回文数的数的个数

  38.                 for(int i=100;i<1000;i++)
  39.                 {
  40.                         if(sNumber(i))//调用判断是否是水仙花数的函数
  41.                         {
  42.                                 if(hNumber(i))//调用判断是否是回文数的函数
  43.                                 {
  44.                                         System.out.print(i+" ");//把满足条件的数输出
  45.                                         n++;
  46.                                         if(n!=0)
  47.                                                 continue;       
  48.                                 }
  49.                                 s[m++]=i;
  50.                         }         
  51.                 }
  52.                 if(n==0)//如果没有即是水仙数又是回文数的数字,输出所有水仙数
  53.                 {
  54.                         System.out.println("不存在即是水仙数又是回文数的三位数,三位数的水仙数如下:");
  55.                         for(int i=0;i<m;i++)
  56.                                 System.out.print(s[i]+" ");
  57.                 }   
  58.         }  
  59. }
复制代码
第三题
  1. /*
  2. 需求:打印出100到200之间中即不是回文数又不是素数又不是水仙数的所有数的和。
  3. 思路:  1.100到200之间循环
  4.         2.判断是否是水仙数,回文数,素数
  5.         3.同时满足此条件的则累加求和,打印输出
  6. */
  7. import javax.swing.JOptionPane;
  8. public class Sum  
  9. {  
  10.         public static boolean sNumber(int i)//定义函数,判断是否是水仙数(水仙数是指一个三位数,其个位数立方和等于本身)
  11.         {
  12.                 int ge,shi,bai;
  13.                 bai=i/100;
  14.                 shi=i%100/10;
  15.                 ge=i%10;
  16.                 if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai)//满足水仙数条件,返回真
  17.                         return true;
  18.                 return false;       
  19.         }


  20.         public static boolean hNumber(int i)//定义函数,判断是否是回文数(回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231)
  21.         {
  22.                 int ge,bai;
  23.                 bai=i/100;
  24.                 ge=i%10;
  25.                 if(ge==bai)
  26.                         return true;//满足回文数条件,返回真
  27.                 return false;
  28.         }


  29.         public static boolean Prime(int i)//定义函数,判断是否是素数(素数,只能被1和本身整除的数)
  30.         {
  31.                 int j;
  32.                 for(j=2;j<i/2;j++)
  33.                 {
  34.                         if(i%j==0)break;       
  35.                 }
  36.                 if(j>i/2)
  37.                         return true;
  38.                 return false;
  39.         }


  40.         public static void main(String args[])  
  41.         {
  42.                 int sum=0;//保存和

  43.                 for(int i=100;i<200;i++)
  44.                 {
  45.                         if(!sNumber(i) && !hNumber(i) && !Prime(i))//调用函数选择即不是回文数又不是素数又不是水仙数的数累加求和
  46.                         {
  47.                                 //System.out.print(i+" ");
  48.                                 sum+=i;
  49.                         }         
  50.                 }

  51.                 System.out.println("sum="+sum);
  52.                        
  53.         }  
  54. }
复制代码
运行结果


第二周.jpg (28.15 KB, 下载次数: 0)

第二周.jpg

点评

算素数的方法还可以简写  发表于 2013-7-5 13:21

评分

参与人数 1技术分 +3 收起 理由
神之梦 + 3 整体排版可以!第3题结果不对,算素数的方.

查看全部评分

回复 使用道具 举报
本帖最后由 黄少海 于 2013-7-2 11:04 编辑
  1. /**题目3:打印出100到200之间中即不是回文数又不是素数又不是水仙数的所有数的和。
  2. *
  3. * 思路:
  4. * 根据题意可以得出。涉及到的变量有即不是回文数又不是素数又不是水仙数的所有数的和 用int类型的变量s来表示,
  5. * 100到200范围的数值用int类型的变量num来表示。采用for循环从100逐个进行条件判断。
  6. *
  7. */
  8. package exercises;

  9. public class Exercises_03 {

  10.         public static void main(String[] args) {
  11.                 // TODO Auto-generated method stub
  12.                 int s = 0; //即不是回文数又不是素数又不是水仙数的所有数的和
  13.                 for(int num=100; num<=200;num++){ //100到200范围的数值逐个进行判断
  14.                         if(isShuixian(x)==false & isHuiWen(x)==false & isPrime(x)==false){
  15.                                 //调用水仙数、回文数、素数的判定方法
  16.                                 
  17.                                 s += num;
  18.                         }
  19.                 }
  20.                
  21.                 System.out.println("100到200之间中即不是回文数又不是素数又不是水仙数的所有数的和为:"
  22.                 +"\r\n"+s);//输出结果
  23.                
  24.                
  25.         }
  26.         /**回文数的判断
  27.          * @param value 接受一个int类型的值
  28.          * @return true 代表该值是一个回文数。
  29.          *                    false 代表该值不是回文数。n
  30.          */                  
  31.         private static boolean isHuiWen(int value) {
  32.                 // TODO Auto-generated method stub
  33.                 int x = 0;//百位
  34.                 int y = 0;//十位
  35.                 int z = 0;//个位
  36.                 x = value/100;
  37.                 y = (value/10) % 10;
  38.                 z = value%10; //提取个位十位百位
  39.                
  40.                 if(x==z){//判断这个数是否是是回文数
  41.                         return true;
  42.                 }
  43.                 return false;
  44.         }
  45.         /**素数的判断
  46.          * @param value 接受一个int类型的值
  47.          * @return true 代表该值是一个素数。
  48.          *                    false 代表该值不是素数。
  49.          */
  50.         private static boolean isPrime(int value) {
  51.                 // TODO Auto-generated method stub
  52.                 for(int i=2; i<=value/2; i++){
  53.                         if(value%i==0){
  54.                                 return false;
  55.                         }
  56.                 }
  57.                 return true;
  58.         }
  59.         /**水仙数的判断
  60.          * @param value 接受一个int类型的值
  61.          * @return true 代表该值是一个水仙数。
  62.          *                    false 代表该值不是水仙数。
  63.          */
  64.         private static boolean isShuixian(int value) {
  65.                 // TODO Auto-generated method stub
  66.                 int x = 0;//百位
  67.                 int y = 0;//十位
  68.                 int z = 0;//个位
  69.                 x = value/100;
  70.                 y = (value/10) % 10;
  71.                 z = value%10; //提取个位十位百位
  72.                
  73.                 if(x*x*x+y*y*y+z*z*z==value ){//判断是否是一个水仙数。
  74.                         return true;
  75.                 }
  76.                 return false;
  77.         }


  78.         
  79. }
复制代码

题目3结果.png (7.43 KB, 下载次数: 0)

题目3结果.png

评分

参与人数 1技术分 +3 收起 理由
Just_Only + 3 赞一个!

查看全部评分

回复 使用道具 举报
  1. package huodong;
  2. import java.lang.Math ;

  3. public class Shui
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 //调用函数
  8.                 shuixian();
  9.         }
  10.         public static int shuixian()
  11.         {
  12.                 StringBuilder x=new StringBuilder();
  13.                 StringBuilder y=new StringBuilder();
  14.                 //遍历100-999之间的数查找水仙数
  15.                 for (int i = 100; i < 1000; i++)
  16.                 {
  17.                        
  18.                         int arr[]=new int[3];
  19.                         int m = i;
  20.                         //将整数的各个位上的数取出来
  21.                         for (int j=0; j <3; j++)
  22.                         {

  23.                                 arr[j]=m%10;
  24.                                
  25.                                 m=m/10;
  26.                                
  27.                         }
  28.                         Double sum=Math.pow(arr[0],3)+Math.pow(arr[1],3)+Math.pow(arr[2],3);
  29.                         //判断是否是水仙数
  30.                         if (i==sum)
  31.                         {
  32.                                 //是水仙数的话存起来
  33.                                 y.append(i);
  34.                                 y.append("|");
  35.                
  36.                                 int xin=arr[0]*100+arr[1]*10+arr[2];
  37.                                 //判断是否既是水仙数又是回文数
  38.                                 if (xin==i)
  39.                                 {
  40.                                         System.out.println("既是水仙数又是回文数的数:"+i);
  41.                                         //是的话存起来
  42.                                         x.append(i);
  43.                                        
  44.                                 }
  45.                         }
  46.                        
  47.                        
  48.                 }
  49.                 //判断是否存在既是水仙数又是回文数的数
  50.                 if (x.length()==0)
  51.                 {
  52.                         System.out.println("没有发现既是水仙数又是回文数的数");
  53.                         //输出水仙数
  54.                         String str=y.toString();
  55.                         System.out.println("水仙数字:"+str);       
  56.                 }
  57.                 else
  58.                 {
  59.                         String str1=x.toString();
  60.                         System.out.println("既是水仙数又是回文数的数"+str1);
  61.                 }
  62.                 return 0;
  63.                
  64.         }
  65. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
Just_Only + 1

查看全部评分

回复 使用道具 举报
  1. /**打印出所有三位数中即是水仙数又是回文数的数,如果没有这个数那么输出所有的水仙数。
  2.          水仙数是指一个三位数,其个位数立方和等于本身,例如:153=1*1*1+5*5*5+3*3*3
  3.          回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231。
  4. *
  5. *思路:
  6. * 1:从题中可以看出被判断的数为一个3位数。可以用3个变量x、y、z分别来代表他的百位、十位、个位。 用变量value代表它的值。
  7. *         (1)百位提取 :用vlaue除以100取整;
  8. *         (2)十位提取:用vlaue除以10取整在除以10取余数
  9. *        (3) 个位取整:用vlaue除以10取余数;
  10. * 2:打印出所有三位数中即是水仙数又是回文数的数。3位数值范围为100-999 定义for循环来实现在进行逐个判断.
  11. *           首先判断是否是水仙数,如果是存入一个数组arr数组中。在对该数是否是一个回文数。如果是直接输出该数。
  12. *
  13. * 3:如果即是水仙数又是回文数的数不存在。定义一个boolean isExist来判断是否存在。false表示水仙数又是回文数的数不存在。
  14. */

  15. package exercises;

  16. public class Exercises_02 {

  17.         public static void main(String[] args) {
  18.                 // TODO Auto-generated method stub
  19.                
  20.                 int x = 0;//百位
  21.                 int y = 0;//十位
  22.                 int z = 0;//个位
  23.                 boolean isExist = false;//即是水仙数又是回文数的数不存在
  24.                 int [] arr = new  int [999];//存放所有的水仙数
  25.                 int index=0;
  26.                
  27.                 for(int value=100; value<=999; value++){
  28.                         x = value/100;
  29.                         y = (value/10) % 10;
  30.                         z = value%10;//提取个位十位百位
  31.                         if(x*x*x+y*y*y+z*z*z==value ){//判断是否是一个水仙数。如果是存入数组arr中
  32.                                 arr[index]=value;
  33.                                 index++;
  34.                                 if(x==z){//判断这个数是否是水仙数又是回文数
  35.                                         System.out.println("即是水仙数又是回文数的值"+value);
  36.                                         isExist = true;//即是水仙数又是回文数的数存在
  37.                                 }
  38.                         }
  39.                 }
  40.                
  41.                
  42.                 if(isExist==false){//如果没有这个数那么输出所有的水仙数
  43.                         System.out.println("即是水仙数又是回文数不存在"+"\r\n"+"所有的水仙数是");
  44.                         printArr(arr,index);
  45.                 }
  46.         }
  47.         /**打印一个int类型数组的内容.格式是[1;2;3;4;......]
  48.          * @param arr 接受一个int类型的数组。
  49.          * @param index 接受一个int类型的数值表示要打印的个数
  50.          */
  51.         public static void printArr(int[] arr, int index){
  52.                 System.out.print("[");
  53.                 for(int x=0; x<index; x++)
  54.                         if(x<index-1)
  55.                         System.out.print(arr[x]+";");
  56.                         else
  57.                                 System.out.println(arr[x]+"]");
  58.                 }
  59.        

  60. }
复制代码
请版主看看 这边代码哪里可以简化。

第二题.png (6.82 KB, 下载次数: 0)

第二题.png
回复 使用道具 举报
为什么我每次粘过来的代码全乱了呢?

点评

可能是网络的问题的吧,你可以重新排版下的。。。  发表于 2013-7-2 12:46

评分

参与人数 1技术分 +2 收起 理由
Just_Only + 2 第一题不对。。。

查看全部评分

回复 使用道具 举报
本帖最后由 宋智超 于 2013-7-2 00:21 编辑

第三题代如下:
  1. class disanti
  2. {
  3. public static void main(String[] args)
  4. {
  5. int g=0,s=0,b=1,num,num1,num2,sum=200; //定义变量,g代表个位,s代表十位,b代表百位。。。
  6. for (b=1;b<2;b++)
  7. {
  8. for (s=0;s<10;s++)
  9. {
  10. for (g=0;g<10;g++) //上部分代码作用为对100到999的数字进行循环
  11. {
  12. num=g+s*10+b*100; //num代表现在所循环的数字
  13. num1=b+s*10+g*100;
  14. num2=g*g*g+s*s*s+b*b*b;
  15. boolean x,y,z=true,j;
  16. for (int a=2;a<num;a++)
  17. {
  18. if (num%a==0)
  19. {
  20. z=false;
  21. break;
  22. }
  23. }
  24. x=!(num==num1);
  25. y=!(num==num2); //对所循环的数字进行判断,x=ture说明不是是回文数,y=ture说明不是是水仙花数,!z=ture说明不是素数。
  26. j=x&&y&&(!z); //声明既不是素数也不是回文数也不是水仙花数
  27. if (j) //判断是否符合求和条件,如果符合则对其进行求和
  28. {
  29. sum=sum+num;
  30. }
  31. }
  32. }
  33. }
  34. System.out.println("100~200之间即不是回文数又不是素数又不是水仙数的所有数的和为:"+sum); //输出求和结果
  35. }
  36. }
复制代码
第三题运行结果如下:

新手一枚,所做三道题代码较为繁琐,已有优化思路。

回复 使用道具 举报
以下是第二题代码
class dierti
{
        public static void main(String[] args)
        {
              int g=0,s=0,b=1,num,num1,num2;                //定义变量,g代表个位,s代表十位,b代表百位。。。
              for (b=1;b<10;b++)
              {
                for (s=0;s<10;s++)
                {
                        for (g=0;g<10;g++)                    //上部分代码作用为对100到999的数字进行循环
                        {
                              num=g+s*10+b*100;                 //num代表现在所循环的数字
                              num1=b+s*10+g*100;
                              num2=g*g*g+s*s*s+b*b*b;
                              boolean x,y;
                              x=(num==num1);
                              y=(num==num2);                    //对所循环的数字进行判断,x=ture说明是回文数,y=ture说明是水仙花数
                              if (x&y)                          //判断是否即是回文数也是水仙花数,如果是则打印
                               {
                                      System.out.println(num+"即是回文数也是水仙花数");
                                }
     
                              else if (y)                       //若次数不能同时即是回文数也是水仙花数,则判断是否是水仙花数,如果是则打印
                               {
      
                                      System.out.println(num+"是水仙花数");
                                }

                                          }
                                  }
                              }
  
                        }
                }
以下是第二题的运行结果   PS:从EditPlus从直接考过来代码全乱了……最后还是用空格排版……好幸苦……


回复 使用道具 举报
以下是第一题的代码
class  diyiti
{
      public static void main(String[] args)
      {
           int j,y;     //定义两个变量,j代表甲队,其中的数值1代表1号,如j=1表示为甲队一号。                                       
           for (j=1;j<4;j++)     //控制甲队循环
           {
                for (y=1;y<4;y++)        //控制乙队循环
                {
                   boolean temp=!((j==1&&y==1)||((j==3)&&(y==1))||((j==3)&&(y==3)));       //声明甲队1号说不和乙队的1号比,甲队的3号说不和乙队的1号和3号比
                   if (temp)        //对对比的结果进行判断,若符合条件则进行下面语句
                {
                   System.out.println("甲队的"+j+"号 VS 乙队的"+y+"号");       //输出对比结果
                }
                }
          }
     }
}

下图是运行的结果


回复 使用道具 举报
  1. /** 题目1.两个兵乓球队进行比赛,各出三个人。各队选手的编号均为1号,2号,3号,抽签决定比赛名单,有人向队员打听比赛的名单。
  2.          甲队1号说不和乙队的1号比,甲队的3号说不和乙队的1号和3号比,请编程找出两队的赛手名单。
  3. *
  4. *思路:
  5. * 1:甲队各队选手的编号均为1号,2号,3号。可以用一个外循环来实现。其中x范围为1到3,分别代表选手号码。
  6. * 2:一队同理用一个内循环来实现。变量用y来表示。
  7. * 3:根据已知条件找出两队的赛手名单在内循环分别用条件语句进行判断
  8.        
  9. */

  10. package exercises;

  11. public class dfdfd {


  12.         public static void main(String[] args) {
  13.                 // TODO Auto-generated method stub
  14.                
  15.                
  16.                 System.out.println("甲队赛手名单:1;2;3;");
  17.                 for(int x=1; x<=3; x++){  //变量x的范围代表的是甲队比赛选手
  18.                         for(int y=1; y<=3; y++){ //变量y的范围代表的是乙队比赛选手
  19.                        
  20.                                 if(x==1 && y==3 ) //判断甲队1号的对手
  21.                                         System.out.print("乙队赛手名单:"+y+";");       
  22.                                 if(x==2 && y==1) //判断甲队2号的对手
  23.                                         System.out.print(y+";");
  24.                                 if(x==3 && y==2) //判断甲队3号的对手
  25.                                         System.out.println(y+";");
  26.                         }
  27.                 }
  28.         }

  29. }
复制代码

第一道题结果.png (6.65 KB, 下载次数: 0)

第一道题结果.png
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马