门户网站模板图片用明星名字做网站
11.判断101-200之间有多少个素数,并输出所有素数。【重点】
 程序分析:判断素数的方法,用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
 public class lianxi {
     public static void main(String[] args) {
         int count = 0; 
         for(int i=101; i<200; i+=2) {
             boolean b = false; 
             for(int j=2; j<=Math.sqrt(i); j++) {
                 if(i % j == 0) {
                     b = false; break;
                 } else { 
                     b = true; 
                 } 
             } 
             if(b == true) {
                 count ++;
                 System.out.println(i );
             } 
         } 
         System.out.println( "素数个数是: " + count);
     }
 }
 12.水仙花数。【了解】
 问题描述:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
 public class lianxi { 
     public static void main(String[] args) { 
         int b1, b2, b3;
         for(int m=101; m<1000; m++) { 
             b3 = m / 100;
             b2 = m % 100 / 10;
             b1 = m % 10; 
             if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) { 
                 System.out.println(m+"是一个水仙花数"); 
             } 
         } 
     }
 }
 13.正整数分解质因数。【了解】
 问题描述:将一个正整数分解质因数,例如:输入90,打印出 90=2*3*3*5。 
 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 
 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可;
 如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数,重复执行第一步;
 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 
 public static void main(String[] args) {
 Scanner s = new Scanner(System.in);
 System.out.print( "请键入一个正整数: "); 
 int n = s.nextInt();
   int k=2;
   System.out.print(n + "=" ); 
   while(k <= n) { 
 if(k == n) { 
 System.out.println(n); 
 break;
 } else if( n % k == 0) {
 System.out.print(k + "*");
       n = n / k;
 } else {
 k++;
     } 
 }
 14.最大公约数和最小公倍数。【了解】
 程序分析:在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的 较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。
 import java.util.*; 
 public class lianxi {
     public static void main(String[] args) { 
         int a ,b,m;
         Scanner s = new Scanner(System.in); 
         System.out.print( "键入一个整数:"); 
         a = s.nextInt(); 
         System.out.print( "再键入一个整数: ");
         b = s.nextInt(); 
         deff cd = new deff();
         m = cd.deff(a,b); 
         int n = a * b / m; 
         System.out.println("最大公约数: "+m); 
         System.out.println("最小公倍数: "+n); 
     }
 }
 class deff{ 
     public int deff(int x, int y){
         int t; 
         if(x < y) {
             t = x;
             x = y;
             y = t; 
         }
         while(y != 0) { 
             if(x == y)  return x;
             else { 
                 int k = x % y;
                 x = y;
                 y = k;
             }
         }
         return x; 
     }
 }
 15.完数。【了解】
 问题描述:一个数如果恰好等于它的因子之和,这个数就称为"完数",编程找出1000以内的所有完数,例如:6=1+2+3。
 public class lianxi { 
     public static void main(String[] args) { 
         System.out.println("1到1000的完数有:"); 
         for(int i=1; i<1000; i++) { 
             int t = 0; 
             for(int j=1; j<= i/2; j++) { 
                 if(i % j == 0) {
                     t = t + j;
                 }
             }
             if(t == i) {
                 System.out.print(i + " ");
             }
         } 
     }
 }
 16.完全平方数。【了解】
 问题描述:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
 public class lianxi { 
     public static void main(String[] args) { 
         for(int x =1; x<100000; x++) { 
             if(Math.sqrt(x+100) % 1 == 0) { 
                 if(Math.sqrt(x+268) % 1 == 0) { 
                     System.out.println(x + "加100 是一个完全平方数,再加168 又是一个完全平方数");
                 }
             }
         } 
     }
 }
17.猴子吃桃。【了解】
 问题描述:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?
 public class lianxi {
     public static void main(String[] args) { 
         int x = 1;
         for(int i=2; i<=10; i++) 
 x = (x+1)*2; 
         System.out.println("猴子第一天摘了" + x + " 个桃子");
     }
 }
 18.乒乓球比赛。【了解】
 问题描述:两个乒乓球队进行比赛,各出三人。甲队为a、b、c三人,乙队为x、y、z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x、z比,请编程序找出三队赛手的名单。
 public class lianxi { 
     static char[] m = { 'a', 'b', 'c' };
     static char[] n = { 'x', 'y', 'z' }; 
     public static void main(String[] args) { 
         for (int i = 0; i < m.length; i++) {
             for (int j = 0; j < n.length; j++){
                 if (m[i] == 'a' && n[j] == 'x'){ 
                     continue;
                 } else if (m[i] == 'a' && n[j] == 'y') { 
                     continue; 
                 } else if ((m[i] == 'c' && n[j] == 'x') || (m[i] == 'c' && n[j] == 'z')) {
                     continue; 
                 } else if ((m[i] == 'b' && n[j] == 'z') || (m[i] == 'b' && n[j] == 'y')) {
                     continue; 
                 } else 
                     System.out.println(m[i] + " vs " + n[j]); 
             }
         } 
     }
 }
 19.求1+2!+3!+...+20!的和。【重点】 
 public class lianxi { 
     public static void main(String[] args) { 
         long sum = 0; 
         long fac = 1;
         for(int i=1; i<=20; i++) { 
             fac = fac * i; 
             sum += fac;
         }
         ystem.out.println(sum);
     }
 }
 20.计算年龄。【了解】
 问题描述:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
 public class lianxi { 
     public static void main(String[] args) { 
         int age = 10;
         for(int i=2; i<=5; i++) { age =age+2; }
         System.out.println(age); 
     }
 }
