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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

本帖子需要验证码才可查看,请输入验证码:heima 即可正常访问  
回复 使用道具 举报
楼主您好,我不知道怎么把帖子设置成仅作者可见

评分

参与人数 1技术分 +3 收起 理由
Just_Only + 3 为什么你也要用字母呢?我明明说的是编号。.

查看全部评分

回复 使用道具 举报

运行结果

评分

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

查看全部评分

回复 使用道具 举报
/*
第三题
*/
class number{
        number(int x){
                this.m=x;
        }
        public boolean shuixian(int m){//判断水仙数的函数
                int x=m/100;
                int y=(m%100)/10;
                int z=m%10;
                int n=x*x*x+y*y*y+z*z*z;
                if(m==n)
                        return true;
                else return false;
        }
        public boolean huiwen(int m){//判断回文书的函数
                int x=m/100;
                int y=m%10;
                if(x==y)
                        return true;
                else return false;
        }
        public boolean sushu(int m){
                int n=m/2;
                int singal=0;//设置判断素数标志
                for(int i=2;i<=n;i++){
                        if(m%i==0){
                                singal=1;;
                        }
                }
                if(singal==1)//标志改变,不是素数
                        return false;
                else return true;
        }
        private int m;
}
public class Test4 {
        public static void main(String[] args){
                int sum=0;
        for(int i=100;i<=200;i++){
                number num=new number(i);
                if((num.huiwen(i)==false)&&(num.sushu(i)==false)&&(num.shuixian(i)==false)){
                        sum+=i;
                }
        }
        System.out.println(sum);
        }
}
/*
刚学了面向对像,就用类写了下,第二题
*/
/*
定义一个number类,
*/
class Number{
        Number(int x){
                this.x=x;
        }
        public boolean shuixian(int m){//判断水仙数的函数
                int x=m/100;
                int y=(m%100)/10;
                int z=m%10;
                int n=x*x*x+y*y*y+z*z*z;
                if(m==n)
                        return true;
                else return false;
        }
        public boolean huiwen(int m){//判断回文书的函数
                int x=m/100;
                int y=m%10;
                if(x==y)
                        return true;
                else return false;
        }
        private int x;
}

class Test3 {
        public static void main(String[] args){
                for(int i=100;i<1000;i++){
                Number num=new Number(i);//创建number对象
                if((num.shuixian(i)==true)&&(num.huiwen(i)==true))//判断即是否是水仙数又是回文数的数
                        System.out.println(i);
                else if(num.shuixian(i)==true)//判断是否是水仙数
                        System.out.println(i);
                }
        }

}
我截的图发不上去。怎么办。我第一题不会做,麻烦你把答案发我邮箱809494869@qq.com。我看看,谢谢

点评

结果在那呢??????  发表于 2013-6-30 21:41
回复 使用道具 举报
  1. import java.util.HashMap;
  2. /*
  3.   1.两个兵乓球队进行比赛,各出三个人。各队选手的编号均为1号,2号,3号,抽签决定比赛名单,有人向队员打听比赛的名单。
  4.          甲队1号说不和乙队的1号比,甲队的3号说不和乙队的1号和3号比,请编程找出两队的赛手名单。
  5. */
  6. public class Test{        
  7.         //HashMap 存储选手被选中状态来做        
  8.         public static void main(String args[]){            
  9.                 String[] m ={"J3","J1","J2"};//甲队-先按提供信息详细程度把他们排好(容易的先入手)            
  10.                 String[] n ={"Y1","Y2","Y3"};//乙队         
  11.                 HashMap<String,Integer> hm = new HashMap<String,Integer>();
  12.                 //存储队员已有对手了吗           
  13.                 //初始都没有对手 ,定义0代表还没有对手         
  14.                 hm.put("J1",0);           
  15.                 hm.put("J2",0);           
  16.                 hm.put("J3",0);            
  17.                 hm.put("Y1",0);            
  18.                 hm.put("Y2",0);           
  19.                 hm.put("Y3",0);            
  20.                 for(int i=0;i<3;i++){               
  21.                         for(int j=0;j<3;j++){  
  22.                                 //甲队1号说不和乙队的1号比
  23.                                 if(i==1&&j==0)
  24.                                         continue;     
  25.                                 //甲队的3号说不和乙队的1号和3号比
  26.                                 if(i==0&&(j==0||j==2))
  27.                                         continue;   
  28.                                 //将没有对手的选手找出
  29.                                 if(hm.get(m[i])==0&&hm.get(n[j])==0){                  
  30.                                         //都没有对手就把他们设成对手                    
  31.                                         //他们的状态改为已有对手                    
  32.                                         hm.remove(m[i]);
  33.                                         //改成已有对手
  34.                                         hm.put(m[i],1);                  
  35.                                         hm.remove(n[j]);  
  36.                                         //改成已有对手
  37.                                         hm.put(n[j],1);                    
  38.                                         System.out.println(m[i]+" vs "+n[j]);               
  39.                                         }           
  40.                                 }      
  41.                         }  
  42.                 }
  43.         }      
复制代码
答案:
J3 vs Y2
J1 vs Y3
J2 vs Y1
------------------------------------------------
题目二:
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. /*
  4. 2.打印出所有三位数中即是水仙数又是回文数的数,如果没有这个数那么输出所有的水仙数。
  5. */
  6. public class Test02 {

  7.         public static void main(String[] args) {
  8.                 List<Integer> list = fun1();
  9.                 //输出既是回文数又是水仙数的数,如果没有这个数那么输出所有的水仙数
  10.                 if(list.size()!=0){
  11.                         for(Integer i : list){
  12.                                 System.out.println(i);
  13.                         }
  14.                 }else{
  15.                         //输出水仙数
  16.                         shuiXina();
  17.                 }
  18.         }
  19.         //找出所有三位数是水仙数的数 例如:153=1^3+5^3+3^3
  20.         public static void shuiXina(){
  21.                 int a1,a2,a3;
  22.                 for(int i=100;i<1000;i++){
  23.                         a1 = i/100;
  24.                         a2 = i%100/10;
  25.                         a3 = i%10;
  26.                         if(a1*a1*a1+a2*a2*a2+a3*a3*a3==i){
  27.                                 System.out.println(i);
  28.                         }
  29.                 }
  30.         }
  31.         //找出既是水仙数又是回文数的数
  32.         public static List<Integer> fun1(){
  33.                 int a1,a2,a3;       
  34.                 List<Integer> list = new ArrayList<Integer>();
  35.                 for(int i=100;i<1000;i++){
  36.                         a1 = i/100;
  37.                         a2 = i%100/10;
  38.                         a3 = i%10;
  39.                         //既是水仙数又是回文数的数
  40.                         if(a1==a3&&a1*a1*a1+a2*a2*a2+a3*a3*a3==i){
  41.                                 list.add(i);
  42.                         }
  43.                 }
  44.                 return list;
  45.         }
  46. }
复制代码
答案:
153
370
371
407
-------------------------
题目三:
  1. //  3.打印出100到200之间中即不是回文数又不是素数又不是水仙数的所有数的和。
  2. public class Test03 {

  3.         public static void main(String[] args){
  4.                
  5.                 int a1,a2,a3;
  6.                 int sum = 0;
  7.                 for(int i=100;i<=200;i++){
  8.                         a1 = i/100;
  9.                         a2 = i%100/10;
  10.                         a3 = i%10;
  11.                         //既不是回文数又不是素数又不是水仙数--第一步缩小范围,找出既不是回文数又不是水仙数的数
  12.                         if(!(a1==a3||a1*a1*a1+a2*a2*a2+a3*a3*a3==i)){                       
  13.                                 for(int j=2;j<i-1;j++){
  14.                                         //找出又不是素数的数并求和
  15.                                         if(i%j==0){
  16.                                                 System.out.println(i);
  17.                                                 sum += i;
  18.                                                 break;
  19.                                         }
  20.                                 }
  21.                         }
  22.                 }
  23.                 System.out.println("sum="+sum);
  24.         }
  25.        
  26. }
复制代码
答案:
如果包括100和200
sum=11125
如果只包括100
sum=10925
如果都不包括
sum=10825

2013-06-30_154124.jpg (5.78 KB, 下载次数: 0)

2013-06-30_154124.jpg

2013-06-30_154200.jpg (7.41 KB, 下载次数: 0)

2013-06-30_154200.jpg

2013-06-30_154623.jpg (6.05 KB, 下载次数: 0)

2013-06-30_154623.jpg

评分

参与人数 1技术分 +4 收起 理由
Just_Only + 4 很好。。。

查看全部评分

回复 使用道具 举报
第二题
  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. }
复制代码
回复 使用道具 举报
  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. }
复制代码
这次能不能看到啊???【挠头】
回复 使用道具 举报

楼主啊.用字母和数字不都一样吗....... 用字母更直观...数字更不直观 本来想用个二维数组的...
回复 使用道具 举报

我截的图粘贴不上去

点评

可以把结果写在每题的后面  发表于 2013-7-2 12:51
回复 使用道具 举报

有道理... 问题是怎么遍历这中带中文字的字符串...  
回复 使用道具 举报
搞了半天累死我了终于搞完了第一题
  1. /**1.两个兵乓球队进行比赛,各出三个人。各队选手的编号均为1号,2号,3号,抽签决定比赛名单,有人向队员打听比赛的名单。
  2.          甲队1号说不和乙队的1号比,甲队的3号说不和乙队的1号和3号比,请编程找出两队的赛手名单。
  3. */
  4. /*思路:1.把两队的球员分别用连续的字母表示。
  5.                 2.然后通过for循环来判断筛选
  6. */
  7. class BiSai
  8. {
  9.         public static void main(String[] args)
  10.         {
  11.                 char i,j,k;
  12.                 //定义甲队的选手为a b c
  13.                 //乙队的选手为l m n
  14.                 char a='a',b='b',c='c';   
  15.                 char l,m,n;
  16.                
  17.                 for(i='m';i>'l'&&i<'n' ;i++ )    //用第三方变量记录甲队3号要比赛的对手,并且根据ASCII码这几个数在一起来思考
  18.                 {
  19.                         c=i;
  20.                 }
  21.                 for(j='l';j>='l'&&j<='n';j++)
  22.                 {
  23.                         if(j!=c)
  24.                                 a=j;
  25.                 }
  26.                 for(k='l';k>='l'&&k<'n';k++)
  27.                 {
  28.                         if(k!=a&&k!=c)
  29.                         b=k;
  30.                        
  31.                 }
  32.                 System.out.println("a vs "+a+" b vs "+b+" c vs "+c);
  33.         }
  34. }
复制代码
第二题
  1. /**2.打印出所有三位数中即是水仙数又是回文数的数,如果没有这个数那么输出所有的水仙数。
  2.          水仙数是指一个三位数,其个位数立方和等于本身,例如:153=13+53+33
  3.          回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231。
  4. *@author 倪成伟
  5. */
  6. /*
  7. 思路:1.将三位数的各个位取出用变量代替
  8.           2.通过for循环来实现遍历所有三位数
  9.           3.通过StringBuffer来接受所需值
  10. */
  11. class Shu
  12. {
  13.         public static void main(String[] args)
  14.         {
  15.                 int x=1,y,z,s,h,m,n,i=0,a=0;
  16.                 StringBuffer sb=new StringBuffer();
  17.                 StringBuffer sb1=new StringBuffer();                                        //用StringBuffer接受所要值
  18.                 while(x>0&&x<=9)                        //while循环控制百位数
  19.                 {
  20.                         for(y=0;y>=0&&y<10;y++)
  21.                         {
  22.                                 for(z=0;z>=0&&z<10;z++)
  23.                                 {
  24.                                         m=(x*100+y*10+z);      //将xyz转换为三位数付给m
  25.                                         n=(x*x*x+y*y*y+z*z*z);  //三位数各个位三次方后付给n
  26.                                         h=(z*100+y*10+x);                //各位和百位互换后的值付给h
  27.                                         if(m==n&&m==h)                        //判断看是否是所需值
  28.                                         {
  29.                                                 sb.append(m+"  ");
  30.                                         }                                               
  31.                                         if(m==n)
  32.                                         {
  33.                                                 sb1.append(m+"  ");
  34.                                         }
  35.                                 }
  36.                         }
  37.                         x++;
  38.                 }
  39.                 System.out.print("即是水仙数又是回文数的数:");
  40.                 System.out.println(sb);
  41.                 System.out.print("全部水仙数:");
  42.                 System.out.println(sb1);
  43.         }
  44. }
复制代码
第三题
  1. /**
  2. *3.打印出100到200之间中即不是回文数又不是素数又不是水仙数的所有数的和。
  3. *@author 倪成伟
  4. */
  5. /*思路:1.通过for循环找出不是素数的数。
  6.                 2.然后建立一个函数确定所需数。
  7.                 3.通过累加计数完成求和。
  8. */
  9. class ShuHe
  10. {
  11.         public static void main(String[] args)
  12.         {
  13.                 int x,sum=0;
  14.                 for(x=100;x<=200;x++)
  15.                 {
  16.                         w:for(int m=2;m<x;m++)                        //用循环来判断是不是素数
  17.                         {
  18.                                 if(x%m==0)
  19.                                 {
  20.                                         sum+=panDuan(x);                //累加计数
  21.                                         break w;                                //选中数后跳出循环
  22.                                 }                               
  23.                         }
  24.                 }
  25.                 System.out.println(sum);
  26.         }
  27.         public static int panDuan(int a)     //定义一个函数输入不是素数的数并判断是不是水仙数和回文数
  28.         {
  29.                 int x,y,z,h,sum=0,n;
  30.                 x=a/100;
  31.                 y=(a-100)/10;
  32.                 z=(a-x*100-y*10);
  33.                 n=(x*x*x+y*y*y+z*z*z);  
  34.                 h=(z*100+y*10+x);                               
  35.                 if(a!=n&&a!=h)
  36.                 sum=a;
  37.                 return sum;                                //返回选定的值
  38.         }                       
  39. }
复制代码

BVO6$FK@U6~C0EI77G~E6IW.jpg (9.28 KB, 下载次数: 0)

BVO6$FK@U6~C0EI77G~E6IW.jpg

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 ㄗs:/|丶hearts 于 2013-7-1 00:49 编辑

第2题 第3题 放一起了
  1. package com.java.test;

  2. public class NumTest {

  3.         
  4.         /**
  5.          *
  6.          * @param args
  7.          * 2.打印出所有三位数中即是水仙数又是回文数的数,如果没有这个数那么输出所有的水仙数。
  8.          * 水仙数是指一个三位数,其个位数立方和等于本身,例如:153=13+53+33
  9.          * 回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231。
  10.          *
  11.          * 3.打印出100到200之间中即不是回文数又不是素数又不是水仙数的所有数的和。
  12.          *      
  13.          */
  14.         public static void main(String[] args) {
  15.                 // TODO Auto-generated method stub

  16.                 //打印出所有三位数中即是水仙数又是回文数的数,如果没有这个数那么输出所有的水仙数。
  17.                 for(int i = 100; i < 1000; i++){
  18.                         //如果即是水仙数又是回文数  打印该数      否则打印所有水仙数
  19.                         if(isDoffodils(i) && isHuiwen(i)){
  20.                                 System.out.println(i);
  21.                         }else {
  22.                                 //打印所有水仙数
  23.                                 if(isDoffodils(i))
  24.                                         System.out.println(i);
  25.                         }
  26.                                 
  27.                 }
  28.                 System.out.println("---------------------");
  29.                
  30.                 //打印出100到200之间中即不是回文数又不是素数又不是水仙数的所有数的和。
  31.                 int sum = 0;
  32.                 for(int i = 100; i <= 200; i++){
  33.                         
  34.                        //即不是回文数又不是素数又不是水仙数
  35.                       if(!isDoffodils(i) && !isHuiwen(i) && !isPrime(i)){
  36.                            //System.out.println(i);
  37.                            sum += i;
  38.                       }
  39.                 }
  40.                 System.out.println("sum="+ sum );
  41.         }
  42.         //判断一个三位数 是不是 水仙花 数
  43.         public static Boolean isDoffodils(int i){
  44.                 //百位上的数字
  45.                 int x = i/100;
  46.                 //十位上的数字
  47.                 int y = i%100/10;
  48.                 //个位上的数字
  49.                 int z = i%10;
  50.                
  51.                 //如果是水仙花数 返回true  否则返回false
  52.                 if(i == (Math.pow(x, 3)+Math.pow(y, 3)+Math.pow(z, 3)) ){
  53.                         return true;
  54.                 }
  55.                 return false;
  56.         }
  57.         //判断一个三位数 是不是 回文数
  58.         public static Boolean isHuiwen(int i){
  59.                 //百位上的数字
  60.                 int x = i/100;
  61.                 //十位上的数字
  62.                 int y = i%100/10;
  63.                 //个位上的数字
  64.                 int z = i%10;
  65.                
  66.                 //如果是水仙花数 返回true  否则返回false
  67.                 if(i == (z*100 + y*10 + x))
  68.                         return true;
  69.                
  70.                 return false;
  71.         }
  72.         //判断一个数是不是 素数
  73.         //素数只能被1和它本身整除 -- 如果某个大于1小于它的数 能被这个数本身整除,那么这个数就不是素数;反之则是素数
  74.         public static  Boolean isPrime(int i ) {
  75.                 for(int j = 2; j < i; j++){
  76.                         if(i % j == 0){
  77.                                 return false;
  78.                         }
  79.                 }
  80.                 return true;
  81.         }
  82. }
复制代码

QQ图片20130701004300.jpg (6.19 KB, 下载次数: 0)

QQ图片20130701004300.jpg

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 emos-c 于 2013-7-1 10:15 编辑

用的都是最简单的知识来做的。
2.打印出所有三位数中既是水仙数又是回文数的数,如果没有这个数,那么输出所有的水仙数。
思路
1.首先需要遍历所有的三位数 100-999。用3个变量来表示一个三位数 a*100+b*10+c
2.水仙数:a*a*a+b*b*b+c*c*c=a*100+b*10+c。回文数:a=c
3.当没有既是水仙数又是回文数的数时,输出水仙数。所以要分开判断,当满足既是水仙数又是回文数时,输出打印。如果不能同时满足
时,就把水仙数输出。

  1. <P>class ShuiXianShu
  2. {
  3. public static void main(String[] args)
  4. {
  5. ShuiXian sx=new ShuiXian();
  6. sx.getShuiXianShu();
  7. }
  8. }</P>
  9. <P>class ShuiXian
  10. {
  11. //这其实是一个判断标记,如果既是水仙数又是回文数,该变量将被赋值。如果循环结束后num仍为0,说明没有符合条件的数。
  12. int num=0;
  13. public void getShuiXianShu()
  14. {
  15. int a,b,c;
  16. //通过三个for循环实现用a,b,c三个变量从100到999遍历
  17. for (a=1;a<10 ;a++ )
  18. {
  19. for (b=0;b<10 ;b++ )
  20. {
  21. for (c=0;c<10 ;c++ )
  22. {
  23. //判断是否同时是回文数和水仙数。如果是,就输出打印。也可以分成两次判断,先判断水仙数并用毕老师在进制转换里讲到的StringBuffer,用append方法把水仙数记下来
  24. if (a==c && a*100+b*10+c==a*a*a+b*b*b+c*c*c)
  25. {
  26. num=a*100+b*10+c;
  27. System.out.println(num);
  28. }
  29. }
  30. }
  31. }
  32. //判断如果没有同时满足的数,就只打印水仙数。在这里如果用打印StringBuffer对象把存储的水仙数打印也可以,就不用重新判断了,但是元素之间不会用逗号隔开,所以又判断了一次。
  33. if (num==0)
  34. {
  35. System.out.println("没有既是水仙数又是回文数的数,所有的水仙数");
  36. for (a=1;a<10 ;a++ )
  37. {
  38. for (b=0;b<10 ;b++ )
  39. {
  40. for (c=0;c<10 ;c++ )
  41. {
  42. if (a*100+b*10+c==a*a*a+b*b*b+c*c*c)
  43. {
  44. num=a*100+b*10+c;
  45. System.out.println(num);
  46. }
  47. }
  48. }
  49. }
  50. }
  51. }
  52. }
  53. //输出结果:没有既是水仙数又是回文数的数,所有的水仙数153,370,371,407 </P>
复制代码

3.打印出100到200之间既不是回文数,又不是素数,又不是水仙数的所有数的和。
思路:
1.看到关键词100-200之间,求和,知道要用累加思想,遍历这些数
2.遍历过程中,加入判断语句,如果不是回文数,水仙数或素数,就进行累加动作,并用一个变量记住累加的结果。
3.判断时,需要用3个变量来表示一个三位数 a*100+b*10+c。水仙数:a*a*a+b*b*b+c*c*c=a*100+b*10+c。回文数:a=c
4.素数就是在大于1的自然数中,不能被其它自然数整除的数。判断素数代码较长,需要单独封装成一个函数。
5.最后变量中的数就是所要的结果。把它作为返回值传递给调用者。
  1. class QiuHeTest
  2. {
  3. public static void main(String[] args)
  4. {
  5. QiuHe qh=new QiuHe();
  6. System.out.println("它们的和是"+qh.getSum());
  7. }
  8. }
  9. class QiuHe
  10. {
  11. int a,b,c;
  12. public int getSum()
  13. {
  14. int sum=0;
  15. //通过三个for循环实现用a,b,c三个变量从100到200遍历
  16. for (a=1;a<=2;a++ )
  17. {
  18. for (b=0;b<10 ;b++ )
  19. {
  20. for (c=0;c<10 ;c++ )
  21. {
  22. //分别判断该数值是否为回文数,水仙数和素数。素数调用了单独的方法。如果满足不是以上三者,就进行累加。
  23. if (a!=c && a*100+b*10+c!=a*a*a+b*b*b+c*c*c && SuShu(a,b,c))
  24. sum=sum+a*100+b*10+c;
  25. }
  26. }
  27. }
  28. return sum;
  29. }
  30. //判断100到200之间的一个数是不是素数,就先要把这个数传进来
  31. public boolean SuShu(int a,int b,int c)
  32. {
  33. int x=a*100+b*10+c;
  34. for (int y=2;y<x ;y++ )
  35. {
  36. if (x%y==0)
  37. return false;
  38. }
  39. return true;
  40. }

  41. }
  42. //输出结果:它们的和是 6460</P>
复制代码




点评

第三题结果不对  发表于 2013-7-2 12:40

评分

参与人数 1技术分 +1 收起 理由
Just_Only + 1 辛苦了。。。

查看全部评分

回复 使用道具 举报
  1. package Demo;

  2. public class DemoTi1 {

  3.         /**
  4.          * @param args
  5.          */
  6.         /*
  7.          * 最终对战:
  8.          *         甲1-乙3
  9.                 甲2-乙1
  10.                 甲3-乙2
  11.          */
  12.         static String[] team1 = {"甲1","甲2","甲3"};
  13.         static String[] team2 = {"乙1","乙2","乙3"};
  14.         public static void main(String[] args) {
  15.         System.out.println("最终的对阵情况为:");
  16.                 for(int i =0;i< team1.length;i++){
  17.                         for(int j = 0;j <team2.length;j++){
  18.                                 if((team1[i] =="甲1" && team2[j]=="乙1")||(team1[i] =="甲1" && team2[j]=="乙2")){
  19.                                         continue;
  20.                                 }else if((team1[i] =="甲2" && team2[j]=="乙2")||(team1[i] =="甲2" && team2[j]=="乙3")){
  21.                                         continue;
  22.                                 }else if((team1[i] =="甲3" && team2[j]=="乙1")||(team1[i] =="甲3" && team2[j]=="乙3")){
  23.                                         continue;
  24.                                 }else{
  25.                                         System.out.println(team1[i] + " vs " + team2[j]);
  26.                                 }
  27.                         }
  28.                 }
  29.          }
  30. }
复制代码
运行结果为:

最终的对阵情况为:
甲1 vs 乙3
甲2 vs 乙1
甲3 vs 乙2
回复 使用道具 举报
  1. package Demo;

  2. public class DemoTi2 {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.                         for(int i=100;i<=999;i++){  
  9.                                         if(ShuiXian(i)==true && HuiWen(i)==true){
  10.                                                 System.out.println("既是水仙数又为回文数的数:"+i);
  11.                                         }else if(ShuiXian(i)==true){
  12.                                                 System.out.println("水仙数:"+i);
  13.                                         }
  14.                         }
  15.         }
  16.         public static boolean ShuiXian(int x){  
  17.                         int i,j,k;
  18.                         i = x/100;
  19.                         j = x%100/10;
  20.                         k = x%10;
  21.                         if(x==i*i*i+j*j*j+k*k*k){
  22.                                 return true;  
  23.                         }else{
  24.                         return false;
  25.                         }
  26.         }
  27.         public static boolean HuiWen(int x){
  28.                         int i,j,k;
  29.                         i = x/100;
  30.                         j = x%100/10;
  31.                         k = x%10;
  32.                         int[] b = new int[]{k,j,i};
  33.                         if(x == k*100+j*10+i){
  34.                                 return true;
  35.                         }else{
  36.                                 return false;
  37.                         }
  38.         }
  39. }
复制代码
输出结果为:
水仙数:153
水仙数:370
水仙数:371
水仙数:407
回复 使用道具 举报
  1. package Demo;

  2. public class DemoTi3 {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.                 int He = 0;
  9.                 for(int i=100;i<=200;i++){
  10.                         if(SuShu(i) == false && ShuiXian(i) == false && HuiWen(i) ==false){
  11.                                 He += i;
  12.                         }
  13.         }
  14.                 System.out.println("和为:"+He);
  15. }
  16.         public static boolean ShuiXian(int x){  
  17.                 int i,j,k;
  18.                 i = x/100;
  19.                 j = x%100/10;
  20.                 k = x%10;
  21.                 if(x==i*i*i+j*j*j+k*k*k){
  22.                         return true;  
  23.                 }else{
  24.                 return false;
  25.         }
  26. }
  27.         public static boolean HuiWen(int x){
  28.                 int i,j,k;
  29.                 i = x/100;
  30.                 j = x%100/10;
  31.                 k = x%10;
  32.                 int[] b = new int[]{k,j,i};
  33.                 if(x == k*100+j*10+i){
  34.                         return true;
  35.                 }else{
  36.                         return false;
  37.                 }
  38.         }
  39.         public static boolean SuShu(int i){
  40.                 int j;
  41.                 boolean fag = false;

  42.                 for (j = 2; j < i; j++){

  43.                 if (i % j== 0){
  44.                         break;
  45.                         }
  46.                 }
  47.                 if(j<i){
  48.                 }
  49.                 else{
  50.                 fag = true;
  51.                         }
  52.                
  53.                 return fag;
  54.         }
  55. }
复制代码
运行结果为:
和为:11125

评分

参与人数 1技术分 +4 收起 理由
Just_Only + 4 很好。。。

查看全部评分

回复 使用道具 举报
第一题:
  1. /*
  2. *  题目:        两个兵乓球队进行比赛,各出三个人。各队选手的编号均为1号,2号,3号,抽签决定比赛名单,
  3. *                  有人向队员打听比赛的名单。甲队1号说不和乙队的1号比,甲队的3号说不和乙队的1号和3号比,
  4. *                  请编程找出两队的赛手名单。         
  5. *  
  6. *  思路:        寻找对战名单,相当于确定一组数据对,但甲队的人员顺序是一定的,最终目的就是要寻找对应的
  7. *                  乙队人员的出战顺序。相当于将三个不同的数按一定顺序填入到三个坑中。填入的条件首先肯定是
  8. *                  要保证三个数各不相同,相当于对1,2,3三个数进行全排列。满足了各不相同的条件,还要满足题目
  9. *                  所给的条件,即在全排列中将第一个坑里为1的,和第三个坑里为1或3的排除掉,剩下的那组数就是名单。
  10. *  
  11. *  步骤:        首先定义a,b,c三个变量(相当于三个坑)分别用于存放甲队1、2、3号球员的对手。
  12. *                  然后通过循环枚举出可能值往里面填数。填的过程中排除a、b、c三者各不相等
  13. *                  并且保证a != 1, c!= 1和3.剩下的就是乙队可能的出战顺序。
  14. */

  15. public class VsList {

  16.         public static void main(String[] args) {
  17.                 int a, b, c;                                                        //a, b, c分别用于存储甲队1、2、3号球员的对手编号
  18.                 for(a = 1; a <= 3; a++){       
  19.                         for(b = 1; b <= 3; b++){                                                        //先对a,b的取值进行枚举
  20.                                 if(a != b){                                                                                //为true表示甲队一号二号球员的对手不同                                               
  21.                                         for(c = 1; c <= 3; c++){                                        //枚举c的取值
  22.                                                 if(a != c && b != c){                                        //至此为true表示甲队三名球员对手各不相同
  23.                                                         if(a != 1 && c != 1 && c != 3){                //队友特殊条件判断
  24.                                                                 System.out.println("甲队1号 vs 乙队" + a + "号");
  25.                                                                 System.out.println("甲队2号 vs 乙队" + b + "号");
  26.                                                                 System.out.println("甲队3号 vs 乙队" + c + "号");
  27.                                                         }
  28.                                                 }
  29.                                         }
  30.                                 }       
  31.                         }
  32.                 }
  33.         }
  34. }/* Output:
  35. 甲队1号 vs 乙队3号
  36. 甲队2号 vs 乙队1号
  37. 甲队3号 vs 乙队2号
  38. *///:~
复制代码
第二题:

  1. /*
  2. *         题目:        打印出所有三位数中即是水仙数又是回文数的数,如果没有这个数那么输出所有的水仙数。
  3. *                         水仙数是指一个三位数,其个位数立方和等于本身,例如:153=13+53+33
  4. *                         回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231。
  5. *  
  6. *  
  7. *         思路:        1.既然是在所有三位数中选择,且判断方式没有简单规律需要一个数一个数的判断,那么就要考虑
  8. *                         进行一次从100~999之间的遍历,每个数分别判断是否为水仙数或回文数
  9. *                        
  10. *                         2.判断水仙数和回文数都是对3位数中各位数进行操作,因此需要提取出三位数的各数位上的值
  11. *        
  12. *                         3.题目要求没有二者皆是的才打印水仙数。那么在遍历过程中,无法判断是否打印,要在遍历结束后
  13. *                         才知道是否包含有二者皆是的数。因此需要对水仙花数进行保存,并且记录下是否包含二者皆是的数。
  14. *
  15. *
  16. *         步骤:        先弄3个int变量准备好保存百位、十位、个位的处理结果(只在循环里有用,放for里了)
  17. *                         保存水仙数使用ArrayList(因数量未知)
  18. *                         定义一个int计数器用来记录水仙数的个数,这个只是为了确定是否有,所以定义个boolean也行
  19. *                         之后弄个循环开始遍历,提取数位可以用数学方法,也可以借助字符串,这里用了前者
  20. *                         剩下的就没啥好说的了,各种if判断下条件选择输出内容就OK了
  21. */                       

  22. import java.util.ArrayList;

  23. public class FindNum {
  24.         public static void main(String[] args) {

  25.                 ArrayList<Integer> shuiXianList = new ArrayList<Integer>(); //用于存储水仙数
  26.                 int count = 0;                                                                 //记录既是水仙数又是回文数的数的个数
  27.                 for(int i = 100, a, b, c; i < 1000; i++){        //a,b,c用于保存百位、十位、个位的处理结果
  28.                         a = (int)Math.pow(i / 100, 3);                        //取出百位值做立方运算
  29.                         b = (int)Math.pow(i % 100 / 10, 3);                //取出十位值做立方运算
  30.                         c = (int)Math.pow(i % 10, 3);                        //取出个位值做立方运算
  31.                         if (i == a + b + c){                                       
  32.                                 if(a == c){                                                        //两数的立方相等说明两数相等
  33.                                         System.out.println(i + "既是水仙数又是回文数");
  34.                                         count++;                                                //一个回文水仙计数器
  35.                                 }
  36.                                 shuiXianList.add(i);                                       
  37.                         }
  38.                 }
  39.                 if(count == 0){                                                                //通过判断计数器是否正值确定是否有回文水仙数
  40.                         System.out.println("没有找到既是水仙数又是回文数的数");
  41.                         System.out.println("水仙数有:");
  42.                         for(int i : shuiXianList){                                //foreach循环,遍历ArrayList
  43.                                 System.out.println(i);
  44.                         }
  45.                 }
  46.         }
  47. }/* Output:
  48. 153
  49. 370
  50. 371
  51. 407
  52. *///:~
复制代码
第三题 :
  1. /*
  2. *        题目: 打印出100到200之间中即不是回文数又不是素数又不是水仙数的所有数的和。
  3. *          
  4. *        思路:        回文数--个位百位相同
  5. *                        水仙数--各位的三次方之和等于本身             
  6. *                        素数----除1、本身外,无法被其他整数整除
  7. *                        设置一个累加器,每找到一个符号要求的,就加进去
  8. *                        遍历100~200之间的每一个数,然后分别验证其是否为素数、回文、水仙,如果都不是即符合要求
  9. *                        素数的判断:每取一个数i就用从2到Math.sqrt(i)之间的整数对其取模,模全不为0即为素数
  10. *                        其他两种的判断参考题目2
  11. *
  12. *
  13. *         步骤:        为了方便,依然定义3个int来保存各位上的值,用于判断回文和水仙时用。
  14. *                         弄个for遍历100~200
  15. *                         对每个数进行3次判别,其中素数的判别还需再用一次for遍历
  16. *                         三个判断都不是,加之               
  17. */

  18. public class FindNum2 {
  19.         public static void main(String[] args) {
  20.                 int sum = 0;
  21.                 for(int i = 100, a, b, c; i <= 200; i++){        //a,b,c用于保存百位、十位、个位
  22.                         a = (int)Math.pow(i / 100, 3);                       
  23.                         b = (int)Math.pow(i % 100 / 10, 3);               
  24.                         c = (int)Math.pow(i % 10, 3);                        //取出百、十、个位值做立方运算
  25.                         if (a != c){                                                        //为true说明不是回文数
  26.                                 if(i != a + b + c){                                        //为true说明也不是水仙数
  27.                                         for(int j = 2; j <= (int)Math.sqrt(i); j++){        //遍历小于i的平方根的整数
  28.                                                 if(i % j == 0){                                                //被整除说明不是素数
  29.                                                         sum += i;                                                //结果丢入累加器
  30.                                                         break;                                                        //继续测试下一个目标数
  31.                                                 }
  32.                                         }                               
  33.                                 }
  34.                         }       
  35.                 }
  36.                 System.out.println("100到200之间中既不是回文数又不是素数又不是水仙数的所有数的和为" + sum);
  37.         }
  38. }/* Output:
  39. 100到200之间中既不是回文数又不是素数又不是水仙数的所有数的和为11125
  40. *///:~
复制代码
论坛使用很菜~,输出结果也很简单,就不截图了,直接注释在了每段代码结尾处~~

评分

参与人数 1技术分 +4 收起 理由
Just_Only + 4 很好。。。

查看全部评分

回复 使用道具 举报
  1. /*
  2. 2.打印出所有三位数中即是水仙数又是回文数的数,如果没有这个数那么输出所有的水仙数。
  3. 水仙数是指一个三位数,其个位数立方和等于本身,例如:153=13+53+33
  4. 回文数是121置换后还是其本身,而132就不是回文数,因为置换后是231。
  5. */
  6. class Test2
  7. {
  8. public static void main(String[] args)
  9. {
  10. System.out.print("所有的水仙数:");
  11. for(int i=100;i<1000;i++)
  12. {
  13. if(isSxh(i)==true&&isHw(i)==true)
  14. System.out.println("即是水仙数又是回文数的数"+i);
  15. else if(isSxh(i)==true)
  16. System.out.print(i+" ");
  17. }
  18. }
  19. public static boolean isSxh(int x)
  20. {
  21. int i,j,k;
  22. i=x/100;//求x的百位上的数
  23. j=x%100/10;//求x的十位上的数
  24. k=x%10;//求x的个位上的数
  25. if(x==i*i*i+j*j*j+k*k*k)//判断是否为水仙数
  26. return true;
  27. else
  28. return false;
  29. }
  30. public static boolean isHw(int x)
  31. {
  32. int i,j,k;
  33. i=x/100;//求x的百位上的数
  34. j=x%100/10;//求x的十位上的数
  35. k=x%10;//求x的个位上的数
  36. if(x==k*100+j*10+i)//判断x是否为回文
  37. return true;
  38. else
  39. return false;

  40. }
  41. }
复制代码

  1. <P> </P>
复制代码
/*
3.打印出100到200之间中即不是回文数又不是素数又不是水仙数的所有数的和。
*/
class Test3
{
public static void main(String[] args)
{
  int sum=0;
  for(int i=100;i<=200;i++)
  {
   if(isSushu(i)==false&&isSxh(i)==false&&isHw(i)==false)
    sum=sum+i;//累加求和
   //System.out.println("所有数"+i);
  }
  System.out.println("所有数的和:"+sum);
}
public static boolean isSushu(int x)
{//判断是否为素数
  int i,j;
  for(i=2;i<x;i++)
  {
   if(x%i==0)
    break;
  }
  if(i>=x)
   return true;
  else
   return false;
}
public static boolean isSxh(int x)
{//判断是否为水仙数
  int i,j,k;
  i=x/100;//求x的百位上的数
  j=x%100/10;//求x的十位上的数
  k=x%10;//求x的个位上的数
  if(x==i*i*i+j*j*j+k*k*k)//判断是否为水仙数
   return true;
  else
   return false;
}
public static boolean isHw(int x)
{//判断是否为回文
  int i,j,k;
  i=x/100;//求x的百位上的数
  j=x%100/10;//求x的十位上的数
  k=x%10;//求x的个位上的数
  if(x==k*100+j*10+i)//判断x是否为回文
   return true;
  else
   return false;
}
}

评分

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

查看全部评分

回复 使用道具 举报
  1. int y1, y2, y3;/*y1是甲1的对手,y2是甲2的对手,y3是甲3的对手*/
  2.             for (y1 = 1; y1 <= 3; y1++)
  3.             {
  4.                 for (y2 = 1; y2 <= 3; y2++)
  5.                 {
  6.                     if (y1 != y2)
  7.                         for (y3 = 1; y3 <= 3; y3++)//两两相比
  8.                         {
  9.                             if (y1 != y3 && y2 != y3)//同一队的不进行比赛
  10.                             {
  11.                                 if (y1 != 1 && y3 != 1 && y3 != 3)//条件判断
  12.                                     Console.WriteLine("甲队的一号对应乙队的{0}号,甲队的二号对应乙队的{1}号,甲队的三号对应乙队的{2}号", y1, y2, y3);

  13.                             }
  14.                         }
  15.                 }
  16.             }
  17.             Console.ReadKey();

  18.             //输出结果为:甲队的一号对应乙队的3号,甲队的二号对应乙队的1号,甲队的三号对应乙队的2号
复制代码
回复 使用道具 举报
  1. int sum = 0;//和
  2.             for (int i = 101; i <= 200; i++) //用i表示三位数
  3.             {
  4.                 int bai = 0; //百位
  5.                 int shi = 0; //十位
  6.                 int ge = 0; //个位
  7.                 int baiyushu = 0; //对百位进行求余后的数字
  8.                 bai = i / 100;
  9.                 baiyushu = i % 100; //两位数
  10.                 shi = baiyushu / 10;
  11.                 ge = baiyushu % 10;


  12.                 for (int k = 2; k < i; k++)
  13.                 {
  14.                     if (i % k == 0)  //质数
  15.                     {
  16.                         if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge) //水仙花数
  17.                         {
  18.                             continue;
  19.                         }
  20.                         else if (bai == ge)  //回文数
  21.                         {
  22.                             continue;
  23.                         }
  24.                         else
  25.                             sum += i;

  26.                     }
  27.                     else //素数
  28.                         continue;
  29.                 }
  30.             }
  31.             Console.Write("既不是素数又不是回文数又不是水仙花数的总和为:" + sum);
  32.             Console.ReadKey();

  33.             //输出结果为:61275
复制代码

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马