每日编程练习(打卡第一天)

1.递归方法求前一百和:

public class QianYiBaiHe{
    public static void main(String[] args){
        tesy01();
    }
    public static void test01(){
        int n = 100;
        int sum = sum(n);
        System.out.println(sum);
    }
    public static int sum(int n){
        if(n == 1){
            return 1;
        }
            return sum(n - 1) + n;
    } 
}

2.数列特征:

给出n个数,找出这n个数的最大值,最小值,和。

输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。

import java.util.Scanner;
public class MaxMinSun{
    public static void main(String[] args){
        int temp,max = 0,min = 0,sum = 0;
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for(int i = 1; i <= n; i++){
            temp = sc.nextInt();
            sum += temp;
            if(i == 1){
                max = min = temp;
            }
            if(temp > max){
                max = temp;
            }
            if(temp < min){
                min = temp;
            }
        }
        System.out.println(max);
        System.out.println(min);
        System.out.println(sum);
    }
}

3.字母图形

问题描述:

利用字母可以组成一些美丽的图形,下面给出了一个例子:

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。

输出n行,每个m个字符,为你的图形;

方法一:利用Math.abs()确定A的位置;

import java.util.Scanner;
public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int m = sc.nextInt();
    for(int i = 0; i <= n; i++){
        for(int j = 0; j <= m; j++){
            char c = (char)(Math.abs(i - j) + 'A');
            System.out.print(c);
        }
            System.out.println();
    }
}

方法二:

l利用ASCLL码进行排列:

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[][] arr = new int[n][m];
        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                if(i == j){
                    arr[i][j] = 65;
                }
                if(i > j){
                    arr[i][j] = arr[i - 1][j] + 1;
                }
                if(i < j){
                    arr[i][j] = arr[i][j - 1] + 1;
                }
                System.out.println((char)arr[i][j]);
            }
            System.out.println();
        }
    }
}

4.01字串

对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。

public class Main{
    public static void main(String[] args) {
        for(int i = 0;i < 2 ;i++){
            for(int j = 0;j < 2 ;j++){
                for(int k = 0;k < 2;k++){
                    for(int m = 0;m < 2;m++){
                        for(int n = 0;n < 2 ;n++){
                            System.out.println(i+""+j+""+k+""+m+""+n);
                        }
                    }
                }
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值