第一题- /*
- 需求:两个兵乓球队进行比赛,各出三个人。各队选手的编号均为1号,2号,3号,抽签决定比赛名单,有人向队员打听比赛的名单。甲队1号说不和乙队的1号比,甲队的3号说不和
- 乙队的1号和3号比,请编程找出两队的赛手名单。
- 思路: 1.定义三个变量i,j,k为乙队三名队员,保存i是甲队1号的对手,j是甲队2号的对手,k是甲队3号的对手
- --------------------------------
- 甲 i j k
- 乙
- a 0 0
- --------------------------------
- b
- --------------------------------
- c 0
- --------------------------------
- 2.按题目要求进行嵌套循环,同时满足题目要求时即为最终结果
- */
- public class Game{
- public static void main(String[] args) {
-
- char i,j,k;//定义三个变量i,j,k为乙队三名队员,保存i是甲队1号的对手,j是甲队2号的对手,k是甲队3号的对手
- for(i='a'; i<='c'; i++) //乙队三名队员按1,2,3号顺序分别标记为a,b,c
- {
- if(i!='a') //条件1:甲队1号说不和乙队的1号比
- {
- for(k='a'; k<='c'; k++)
- if(k!='a'&&k!='c') //甲队的3号说不和乙队的1号和3号比
- {
- for(j='a'; j<='c'; j++)
- if(i!=j&&j!=k&&k!=i)
- System.out.println("甲队1号的对手是"+i+"\t"+"甲队2号的对手是"+j+"\t"+"甲队3号的对手是"+k+"\t");
- }
- }
- }
- }
- }
复制代码 第二题- /*
- 需求:打印出所有三位数中即是水仙数又是回文数的数,如果没有这个数那么输出所有的水仙数。
- 水仙数是指一个三位数,其个位数立方和等于本身,例如:153=13+53+33
- 回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231。
- 思路: 1.三位数循环
- 2.判断是否是水仙数
- 3.若是水仙数,判断是否是回文数,并标识
- 4.若存在即是水仙数又是回文数的数,则打印输出,否则保存当前水仙数
- */
- import javax.swing.JOptionPane;
- public class Flower
- {
- public static boolean sNumber(int i)//定义函数,判断是否是水仙数(水仙数是指一个三位数,其个位数立方和等于本身)
- {
- int ge,shi,bai;
- bai=i/100;
- shi=i%100/10;
- ge=i%10;
- if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai)//满足水仙数条件,返回真
- return true;
- return false;
- }
- public static boolean hNumber(int i)//定义函数,判断是否是回文数(回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231)
- {
- int ge,bai;
- bai=i/100;
- ge=i%10;
- if(ge==bai)
- return true;//满足回文数条件,返回真
- return false;
- }
- public static void main(String args[])
- {
- int[] s=new int[1000];//保存水仙数
- int m=0;//标识水仙数的个数
-
- int n=0;//标识即是水仙数又是回文数的数的个数
- for(int i=100;i<1000;i++)
- {
- if(sNumber(i))//调用判断是否是水仙花数的函数
- {
- if(hNumber(i))//调用判断是否是回文数的函数
- {
- System.out.print(i+" ");//把满足条件的数输出
- n++;
- if(n!=0)
- continue;
- }
- s[m++]=i;
- }
- }
- if(n==0)//如果没有即是水仙数又是回文数的数字,输出所有水仙数
- {
- System.out.println("不存在即是水仙数又是回文数的三位数,三位数的水仙数如下:");
- for(int i=0;i<m;i++)
- System.out.print(s[i]+" ");
- }
- }
- }
复制代码 第三题- /*
- 需求:打印出100到200之间中即不是回文数又不是素数又不是水仙数的所有数的和。
- 思路: 1.100到200之间循环
- 2.判断是否是水仙数,回文数,素数
- 3.同时满足此条件的则累加求和,打印输出
- */
- import javax.swing.JOptionPane;
- public class Sum
- {
- public static boolean sNumber(int i)//定义函数,判断是否是水仙数(水仙数是指一个三位数,其个位数立方和等于本身)
- {
- int ge,shi,bai;
- bai=i/100;
- shi=i%100/10;
- ge=i%10;
- if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai)//满足水仙数条件,返回真
- return true;
- return false;
- }
-
- public static boolean hNumber(int i)//定义函数,判断是否是回文数(回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231)
- {
- int ge,bai;
- bai=i/100;
- ge=i%10;
- if(ge==bai)
- return true;//满足回文数条件,返回真
- return false;
- }
- public static boolean Prime(int i)//定义函数,判断是否是素数(素数,只能被1和本身整除的数)
- {
- int j;
- for(j=2;j<i/2;j++)
- {
- if(i%j==0)break;
- }
- if(j>i/2)
- return true;
- return false;
- }
- public static void main(String args[])
- {
- int sum=0;//保存和
- for(int i=100;i<200;i++)
- {
- if(!sNumber(i) && !hNumber(i) && !Prime(i))//调用函数选择即不是回文数又不是素数又不是水仙数的数累加求和
- {
- //System.out.print(i+" ");
- sum+=i;
- }
- }
- System.out.println("sum="+sum);
-
- }
- }
复制代码 运行结果
|
|