2021-07-22-java简单应用

4.3 打印下列图形
public static void test4(){
        for (int i = 1; i <=5 ; i++) {
            for(int j = 1;j<=5;j++){
                if(j-5+i<1){
                    System.out.print("&");
                }else System.out.print("*");
            }
            System.out.println();
        }
    }
4.4 写出程序结果 public class Demo tp:相当于给当前的循环起了一个别名.主要作用:实现在内层循 环结束外层循环
public static void main(String []args)
    {
        int i = 0, j = 5;
        tp: for (;;)
        {
            i++;
            cc:for(;;)
            {
                if(i > j--)
                    break tp;
            }
        }
        System.out.println("i = " + i + ", j = "+ j);
    }

结果:i=1,j=-1

4.5 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Smu9Qhwm-1626959291756)(C:\Users\User\AppData\Local\Temp\1626396580167.png)]
1).
public void test6(){
        for (int i = 0; i <5 ; i++) {
            for (int j = 0; j <=i ; j++) {
                System.out.print(" ");
            }
            System.out.println("*****");
        }
    }
2).
public void test7(){
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 9; j++) {
                if(j<=i-1||j>=9-i)
                    System.out.print(" ");
                else System.out.print("*");
            }
            System.out.println();
        }
    }
3).
public void test9(){
        for (int i = 0; i <5 ; i++) {
            for (int j = 0; j <=i ; j++) {
                System.out.print(" ");
            }
            for (int j = 0; j < 5; j++) {
                System.out.print((char) ((int)'A'+i+j));
            }
            System.out.println();
        }
    }
4).
public void test11(){
        for (int i = 4; i >=0 ; i--) {
            for (int j = 0; j <=i ; j++) {
                System.out.print(" ");
            }
            for (int j = 0; j < 5; j++) {
                System.out.print((char) ((int)'A'+i+j));
            }
            System.out.println();
        }
    }
4.6 在屏幕上输出以下内容:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZTXCyZCd-1626959291758)(C:\Users\User\AppData\Local\Temp\1626402921857.png)]

public void test12(){
        for (int i = 5; i >=1 ; i--) {
            for (int j = 1; j <=i ; j++) {
                System.out.print(j);
            }
            System.out.println();
        }
    }
4.7 计算10个99相加后的值并输出。
public void test13(){
        int sum = 0;
        for (int i = 0; i < 10 ; i++) {
            sum+=99;
        }
        System.out.printf("结果是%d",sum);
    }
4.8 计算从1加到100的值并输出。
public void test14(){
        int sum = 0;
        for (int i = 1; i <= 100 ; i++) {
            sum+=i;
        }
        System.out.printf("结果是%d",sum);
    }
4.9 计算10的阶乘(1x2x3x4x5x6x7x8x9x10)。
public void test15(){
        int sum = 1;
        for (int i = 2; i <= 10 ; i++) {
            sum*=i;
        }
        System.out.printf("结果是%d",sum);
    }
4.10 计算2的20次方。
public void test15(){
        int sum1 = 1;
        int sum2 = 1;
        int sum3 = 1;
        for (int i = 1; i <= 20 ; i++) {
            sum1*=2;
            sum2=sum2<<1;
        }
        sum3 = (int)Math.pow(2,20);
        System.out.println(sum1);
        System.out.println(sum2);
        System.out.println(sum3);
    }
4.11 计算从1到1000以内所有奇数的和并输出。 //对2取余 i%2 == 1
public void test16(){
        int sum = 0;
        for (int i = 1; i <1000 ; i++) {
            sum+=i%2==1?i:0;
        }
        System.out.println(sum);
    }
4.12 计算从1到1000以内所有能被3或者17整除的数的和并输出。// i % 3 == 0 || i%17==0
 public void test17(){
        int sum = 0;
        for (int i = 1; i <1000 ; i++) {
            sum+=(i%3==0||i%17==0)?i:0;
        }
        System.out.println(sum);
    }
4.13 计算从1到1000以内所有能同时被3,5和7整除的数的和并输出。
public void test18(){
        int sum = 0;
        for (int i = 1; i <1000 ; i++) {
            sum+=(i%105==0)?i:0;
        }
        System.out.println(sum);
    }
4.14 计算1到100以内能被7或者3整除但不能同时被这两者整除的数的个数。 (i%70 || i%30) && !(i%70 && i%30)
public void test22(){
        int count = 0;
        for (int i = 0; i <100 ; i++) {
            if((i%3==0||i%7==0)&&i%21!=0)
                count++;
        }
        System.out.println(count);
    }
4.15 计算1到100以内能被7整除但不是偶数的数的个数。
public void test23(){
        int count = 0;
        for (int i = 0; i <100 ; i++) {
            if(i%7==0&&i%2==1)
                count++;
        }
        System.out.println(count);
    }
4.16 计算从1到100之间相邻两个整数的和并依次输出。比如第一次输出3(1+2),第二次输出 5(2+3),最后依次输出199(100+99)。
public void test24(){
        for (int i = 1; i <=99 ; i++) {
            System.out.println(i+i+1);
        }
    }
4.17 判断n是不是一个质数(质数是只能被1和它自身整除的数)。
public void test25(){
        int n = 7;
        boolean b = true;
        for (int i = 2; i < n ; i++) {
            if(n%i==0){
                b=false;
                break;
            }
        }
        if(b){
            System.out.printf("%d是质数",n);
        }else System.out.printf("%d不是质数",n);
    }
4.18 将某个8位的整数所有位的数值加在一起并输出。
public void test26(){
        int sum = 0;
        int num = 12345678;
        while (num!=0){
            sum+=num%10;
            num=num/10;
        }
        System.out.println(sum);
    }
附加题1. 打印出一个实心的菱形
public void test27(){
        int len = 3;//菱形的长度
        int dc = len/2;//对称轴
        int n = 0;
        for (int i = 0; i <len ; i++) {
            if(i>dc){
                n=len-1-i;
            }else n = i;
            for (int j = 0; j <len ; j++) {
                if(j>=dc-n&&j<=dc+n){
                    System.out.print("*");
                }else System.out.print(" ");
            }
            System.out.println();
        }
    }
附加题 2. 打印出空心的菱形
public void test27(){
        int len = 11;//菱形的长度
        int dc = len/2;//对称轴
        int n = 0;
        for (int i = 0; i <len ; i++) {
            if(i>dc){
                n=len-1-i;
            }else n = i;
            for (int j = 0; j <len ; j++) {
                if(j==dc-n||j==dc+n){
                    System.out.print("*");
                }else System.out.print(" ");
            }
            System.out.println();
        }
    }
4.5.1 万年历
public void test28(){
        int BASE_YEAR = 1901;
        int BASE_MONTH = 1;
        int BASE_DAY = 1;
        int BASE_WEEK = 2;
        int[] monthDay = {31,28,31,30,31,30,31,31,30,31,30,31};//默认是平年
        int count = 0;//距离1900年的天数

        System.out.println("天天日历提示您输入想要查询的年份");
        Scanner scanner = new Scanner(System.in);
        int year = scanner.nextInt();
        System.out.println("天天日历提示您输入想要查询的月份");
        int month = scanner.nextInt();

        //先计算整年的天数
        for (int i = 1901; i < year; i++) {
            if(i%4==0&&i%100!=0||i%400==0){
                count+=366;
            }else count+=365;
        }
        //计算当前年月的天数
        for (int i = 0; i <month-1 ; i++) {
            if(i==1){
                if(year%4==0&&year%100!=0||year%400==0){
                    count+=29;
                }else count+=28;
            }else {
                count+=monthDay[i];
            }
        }
        //计算1号是星期几
        int week = (count%7+BASE_WEEK)%7;
        System.out.println("\t日\t一\t二\t三\t四\t五\t六");
        for (int i = 0; i < week; i++) {
            System.out.print("\t ");
        }
        for (int i = 1; i <= monthDay[month-1]; i++) {
            System.out.print("\t"+i);
            if((week+i)%7==0)
                System.out.println();
        }
    }

5.7.1 设计方法,计算两个日期之间相差多少天。两个日期的年月日由参数控制。

public void test29()throws Exception{
        String date1 = "2021-2-12";
        String date2 = "2021-2-13";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date parse1 = simpleDateFormat.parse(date1);
        Date parse2 = simpleDateFormat.parse(date2);
        long days = (parse2.getTime()-parse1.getTime())/(1000*60*60*24);
        System.out.printf("相差%d天",days);
    }
5.7.2 开发一个标题为“FlipFlop”的游戏应用程序。它从 1 计数到 100,遇到 3 的倍数就替换为 单词“Flip”,5 的倍数就替换为单词“Flop” ,既为 3 的倍数又为 5 的倍数则替换为单 词“FlipFlop”
public void FlipFlop(){
        for (int i = 1; i <=100 ; i++) {
            if(i%15==0)
                System.out.print("FlipFlop ");
            else if (i%5==0){
                System.out.print("Flop ");
            }
            else if (i%3==0){
                System.out.print("Flip ");
            }else System.out.print(i+" ");
            if(i%10==0)
                System.out.println();
        }
    }
5.7.3 两个自然数X,Y相除,商3余10,被除数、除数、商、余数的和是163,求被除数、除 数。
public void test30(){
        int i;//被除数
        int j;//除数
        for (i = 11; i <150 ; i++) {
            for (j = 1; j <150;j++) {
                if(i+j+13==163&&3*j+10==i){
                    System.out.printf("被除数是%d,除数是%d",i,j);
                    break;
                }
            }
        }
    }
5.7.4 某数学竞赛中,参赛人数大约在380~450人之间。比赛结果,全体考生的总平均分为76 分,男生的平均分为75分,女生的平均分为80.1分,求男女生各有多少人?
public void test31(){
        int x;//女生人数
        int y;//男生人数
        for (x = 1;  x<=380 ; x++) {
            for (y = 380-x; y <=450-x ; y++) {
                if((80.1*x+75*y)/(x+y)==76){
                    System.out.printf("男生人数是%d,女生人数是%d",y,x);
                    break;
                }
            }
        }
    }
5.7.5 使用递归计算1+2+3+…+100的和
 public void test32(){
        System.out.println(digui1(100));
    }
    public int digui1(int i){
        if(i==1)
            return 1;
        return digui1(i-1)+i;
    }
5.7.6 斐波拉契数列
 public void test33(){
        System.out.println("第三十项等于 "+fblq(30));
    }
    public int fblq(int n){
        if(n<=0){
            return 0;
        }
        else if(n==1||n==2){
            return 1;
        }else {
            return fblq(n-1)+fblq(n-2);
        }
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值