java基础一(简单算法收录)

1.计算1-1000数字中1出现的个数。

public static void main(String[] args) {
		int c =0;
		for (int i = 1; i <=1000; i++) {
			char[] charArray = String.valueOf(i).toCharArray();
			for (char d : charArray) {
				if(d=='1'){
					c++;
				}
			}
		}
		System.out.println(c);
	}

2.对N个字符进行全排列并打印输出。

public class test01 {
	static int c = 0;
	public static void main(String[] args) {
		printAllArray("阿威十八式");//1,2,6,24,120,720,5040,40302
	}									
	private static void printAllArray(String s) {
		printAllArray(s, "");
	}
	private static void printAllArray(String s, String n) {
		if (s.length() == 0) {
			System.out.println(++c + " --- " +n );
		} else {
			for (int i = 0; i < s.length(); i++) {
				printAllArray(s.substring(1), n + s.charAt(0));
				s = s.substring(1) + s.charAt(0);
			}
		}
	}

3.计算两个数的最大公约数和最小公倍数。

public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);
		int i, c=1;
		int a = scan.nextInt();
		int b = scan.nextInt();
		if(a%b==0){
			c=b;
		}else if (b%a==0){
			c=a;
		}else{
			for(i=1 ;i<=(a<b?a:b);i++){
				if((a%i)==0&(b%i)==0){
					c*=i;
				}
			}
		}
		System.out.println(c);
		System.out.println(a*b/c);
	}

猜你喜欢

转载自blog.csdn.net/qq_41813207/article/details/80193511