30天学会JAVA—练习题(2021韩顺平)——Day3

1. 判断一个整数是否是水仙花数(其 各个 位 上数字立方和 等于其本身。153=1^3 + 3^3 + 5^3)

public static void main(String[] args) {
   
	System.out.println("请输入一个三位数字,用于判断是否是水仙花数");
	
	Scanner sc = new Scanner(System.in);
	int s = sc.nextInt();
	int ge = s % 10; //个位
	int shi = s / 10 % 10; //十位
	int bai = s / 100; //百位

	if(s == ge*ge*ge + shi*shi*shi + bai*bai*bai){
   
		System.out.println(s + "是水仙花数");
	}else{
   
		System.out.println(s + "不是水仙花数");
	}
	sc.close();
}

2. 输出1-100之间的不能被5整除的数,每5个一行

public static void main(String[] args) {
   
	int count = 0;
	for(int i = 1; i < 100 ; i++){
   
		if(i % 5 != 0){
   
			System.out.print(i+ " ");
			count++;
			if(count % 5 == 0){
   
				System.out.println("");
			}
		}
	}
}

3. 输出小写的a-z以及大写的Z-A

public static void main(String[] args) {
   
	System.out.println("小写英文字母为"); 


	for(int i = 0 ; i <= 25 ;i++){
   	
		System.out.print((char)('a' + i) + " ");		
	}
	System.out.println("");
	System.out.println("大写英文字母为"); 
	for(int i = 0 ; i <= 25 ;i++){
   								
		System.out.print((char)('A' + i)+ " ");
	}
}

4. 求出1-1/2+1/3-1/4……1/100的和

public static void main(String[] args) {
   
	double sum = 0;
	for(int i = 1; i <=100; i++){
   
		sum += (Math.pow(-1, i-1)) * 1/i;
	}
	System.out.println(sum);
}

5. 求1+(1+2)+(1+2+3)+……(1+2+3+…+100)的结果

public static void main(String[] args) {
   
	int sum = 0;

	for(int i = 1 ; i <= 100; i++){
   
		for( int j = 1; j <= i; j++){
   
			sum += j;
		}
	}
	System.out.println(sum);				
}

6. 创建一个char类型的26个元素的数组,分别放置’A’-‘Z’。使用for循环访问所有元素并打印出来。

public static void main(String[] args) {
   
	char[] c = new char[26];
	for(int i = 0; i < c.length; i++){
   
		c[i] = (char)('A' + i);
		System.out.print(c[i] +" ");
	}		
}

7. 请求出一个数组int[]的最大值,并得到对应的下标。

public class Test01 {
   
	public  int max(int[] a){
   
		int max = 0;
		
		for(int i = 0; i <= a.length/2 ; i++){
   
			max = Math.max(a[i], a[a.length- 1 -i]);
		}
		System.out.println(max);
		return max;
	}
	
	public static void main(String[] args) {
   
		Test01 t = new Test01();
		int[] a = new int []{
   1,3,3,9,8,5,3};		
		t.max(a);		
	}
}

8. 求一个数组的和 和 平均值。

public class Test01 {
   
	public  int sum_avg(int[] a){
   
		int sum = 0;
		int avg = 0;
		
		for(int i = 0; i <= a.length - 1 ; i++){
   
			sum += a[i];
			avg = sum/a.length;
		}
		System.out.println("数组和为"+ sum + ",平均值为:" + avg);
		return avg;
		
	}
	
	public static void main(String[] args) {
   
		Test01 t = new Test01();
		int[] a = new int []{
   1,2,3,1};		
		t.sum_avg(a);		
	}
}

9. 遍历二维数组{ {4,6},{1,4,5,7},{-2}},并得到和

public static void main(String[] args) {
   
	int sum = 0;
	int[][] array = new int[][]{
   {
   4,6},{
   1,4,5,7},{
   -2}};
	
	for(int i = 0 ; i < array.length  ; i++){
   
		for(int j = 0; j < array[i].length ; j++){
   
			System.out.print(array[i][j] + " ");
			
			sum += array[i][j];				
		}
		System.out.println("");
	}
	System.out.println("");
	System.out.println("数组和为:"+sum);
}

10. 使用二维数组打印一个10行杨辉三角

public static void main(String[] args) {
   
	int[][] s = new int[10][];
	
	for(int i = 0 ; i < 10 ; i++){
   
		s[i] = new int [i+1]; //定义一维数组
		
		s[i][i] = 1; //对角线为1
		s[i][0] = 1; //第一列为1
		for(int j = 1; j < i; j++){
   
			s[i][j] = s[i-1][j-1]+s[i-1][j];
		}
		
		System.out.println(Arrays.toString(s[i]));
	}		
}

自己写的,输出不太一样

public static void main(String[] args) {
   
	int[][] s = new int[10][];
	
	for(int i = 0 ; i < s.length ; i++){
   
		s[i] = new int [i+1]; //定义一维数组
		
		for(int j = 0; j < s[i].length; j++){
   
			if(j == 0 || j == s[i].length -1){
   
				s[i][j] =1;
			}else{
   
				s[i][j] = s[i-1][j-1]+s[i-1][j];
			}				
		}						
	}
	
	//输出杨辉三角
	for(int i = 0; i < s.length ; i++){
   
		for(int j = 0; j <s[i].length; j++){
   
			System.out.print(s[i][j] + "\t");
		}
		System.out.println();
	}
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务