代码

题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。

public class lianxi02 {
    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);
    }
}

【程序3】

题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

public class lianxi03 {
    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 + "是一个水仙花数");
            }
    }
    }
}

【程序4】

题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

import java.util.*;
public class lianxi04{
           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++;
                           }
             }
            }

【程序11】

题目:有1、2、3、4四个数字,能组成多少个互不相同且一个数字中无重复数字的三位数?并把他们都输入。

public class lianxi11 {
public static void main(String[] args) {
     int count = 0;
     for(int x=1; x<5; x++) {
      for(int y=1; y<5; y++) {
       for(int z=1; z<5; z++) {
        if(x != y && y != z && x != z) {
         count ++;
         System.out.println(x*100 + y*10 + z );
        }
       }
      }
     }
     System.out.println("共有" + count + "个三位数");
}
} 

【程序16】

题目:输出9*9口诀。

public class lianxi16 {
public static void main(String[] args) {
     for(int i=1; i<10; i++) {
      for(int j=1; j<=i; j++) {
       System.out.print(j + "*" + i + "=" + j*i + "    " );
         if(j*i<10){System.out.print(" ");}
}
          System.out.println();
     }
}
} 

【程序21】

题目:求1+2!+3!+…+20!的和

public class lianxi21 {
public static void main(String[] args) {
    long sum = 0; 
    long fac = 1;
    for(int i=1; i<=20; i++) {
     fac = fac * i;
     sum += fac;
    }
    System.out.println(sum);
}
}

【程序24】

题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
//使用了长整型最多输入18位

import java.util.*;
public class lianxi24 {
public static void main(String[] args) {
   Scanner s = new Scanner(System.in);
   System.out.print("请输入一个正整数:");
   long a = s.nextLong();
   String ss = Long.toString(a);
    char[] ch = ss.toCharArray();
    int j=ch.length;
    System.out.println(a + "是一个"+ j +"位数。");
    System.out.print("按逆序输出是:");
    for(int i=j-1; i>=0; i--) {
    System.out.print(ch[i]);
   }
   }
   }

二分法

2、二分法查找
public class BinarySearch {

	public static int binarySearch(int[] a, int x) {
		// 在a[0]<=a[1]<=...<=a[n-1]中搜索x
		// 找到x则返回x的所在位置,否则返回-1
		int left = 0;
		int right = a.length - 1;

		while (left <= right) {
			int middle = (left + right) / 2;
			if (x == a[middle])
				return middle;
			if (x > a[middle])
				left = middle + 1;
			else
				right = middle - 1;
		}
		return -1;
	}

	public static void main(String[] args) {
		int[] a = { 0, 1, 3, 6, 7, 10, 21, 34, 36, 40, 76 };
		int x = 34;// 设定要查找的数
		int position = binarySearch(a, x);
		System.out.println(x + "在数组中的位置是" + position);

	}
}

java string数组转int数组

public int[] StringToInt(String[] arrs){

    int[] ints = new int[arrs.length];

    for(int i=0;i<arrs.length;i++){

        ints[i] = Integer.parseInt(arrs[i]);

    }

    return ints;

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值