java第一次作业(二)

先写思路,再写代码,思路清晰,才能写对代码

7-6 求1+2+...+n的和

思路:

运用expression的字符串输出

重点:

expression输出

代码:
import java.util.Scanner;
public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        scanner.close();

        int sum = 0;
        String expression = "";
        for(int i = 1;i<=n;i++)
        {
            sum += i;
            if(i<n){
            expression +=i+"+";
            }
            else{
                expression +=i;
            }

        }

        expression +="="+sum;
        System.out.println(expression);
    }


}
知识点:

expression输出

7-7 数字三角形(上三角)

思路:

充分运用两个for循环,一个掌控行数,一个掌控输出的数字

代码:
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = n;
        scanner.close();
        int number = 1; // 当前要输出的数字

       for (int i = 1; i <= n; i++)
        {
            // 输出前置空格,以形成上三角的效果

                System.out.print("");
                // 输出当前层的数字
                for (int k = 1; k <= m; k++) {
                    // 每个数字占四个字符位置,不足部分用空格填充
                    System.out.printf("%4d", number++);
                }
                m--;
                System.out.println(); // 每层输出后换行
        }
    }
}
知识点:

输入

 int n = scanner.nextInt();  //输入n
 int m = scanner.nextInt();  //输入m
                             //需要输入两次

数字所占空格

for (int k = 1; k <= m; k++) {
                    // 每个数字占四个字符位置,不足部分用空格填充
                    System.out.printf("%4d", number++);
                }

换行

 System.out.println(); // 每层输出后换行

7-8 百钱买百鸡

思路:

这种复杂的配凑问题,不要去想枚举去解,充分利用for循环语句

像这题我们就用了两个for循环,让代码自己去配凑,一但成功就输出它

代码(一):
java 复制代码
public class Nain {
    public static void main(String[] args) {
        final int totalMoney = 100; // 总共有100块钱
        final int totalChickens = 100; // 总共有100只鸡

        // 公鸡价格5块一只,母鸡价格3块一只,小鸡三只1块
        for (int male = 0; male <= totalMoney / 5; male++) { // 公鸡数量
            for (int female = 0; female <= totalMoney / 3; female++) { // 母鸡数量
                int chicks = totalChickens - male - female; // 小鸡数量
                int moneySpent = male * 5 + female * 3 + (chicks / 3); // 花费的总钱数

                // 检查是否满足条件:钱数总和是否为100,且小鸡数量是3的倍数
                if (moneySpent == totalMoney && chicks % 3 == 0) {
                    // 输出结果
                    System.out.println(male + "只公鸡," + female + "只母鸡," + chicks + "只小鸡");
                }
            }
        }
    }
}
代码一缺点:

不能控制数字的所占的位置

知识点:

定义变量

java 复制代码
   final int totalMoney = 100; // 总共有100块钱
        final int totalChickens = 100; // 总共有100只鸡
代码(二):
java 复制代码
public class Main{
   public static void main(String[] args){
        final int qian =100;
        final int ji   = 100;
       for(int male=0;male<=qian/5;male++){
            for(int fmale = 0;fmale<=qian/3;fmale++){
                int chk =ji -male-fmale;
                int huaqian = male * 5 +fmale *3 +chk / 3;
                if(huaqian==qian && chk %3==0)
                {
                    System.out.printf("公鸡%2d只,母鸡%2d只,小鸡%2d只",male,fmale,chk);
                    System.out.println();
                }
                
            }
       }
   }


}
代码二优点:

可以控制数字的所占位置

知识点:
java 复制代码
System.out.printf("公鸡%2d只,母鸡%2d只,小鸡%2d只",male,fmale,chk);

控制所占位置

总结:

到这里,java第一次作业就写完了,以后要学习课程跟着走,不落后,从现在开始每两天一题打卡,继续学习java。

不要为了敲代码而敲,主要是学习,总结,进步,收获。

相关推荐
救救孩子把5 分钟前
深入理解 Java 对象的内存布局
java
落落落sss8 分钟前
MybatisPlus
android·java·开发语言·spring·tomcat·rabbitmq·mybatis
万物皆字节13 分钟前
maven指定模块快速打包idea插件Quick Maven Package
java
夜雨翦春韭20 分钟前
【代码随想录Day30】贪心算法Part04
java·数据结构·算法·leetcode·贪心算法
简单.is.good26 分钟前
【测试】接口测试与接口自动化
开发语言·python
我行我素,向往自由27 分钟前
速成java记录(上)
java·速成
一直学习永不止步33 分钟前
LeetCode题练习与总结:H 指数--274
java·数据结构·算法·leetcode·数组·排序·计数排序
邵泽明33 分钟前
面试知识储备-多线程
java·面试·职场和发展
Yvemil71 小时前
MQ 架构设计原理与消息中间件详解(二)
开发语言·后端·ruby
程序员是干活的1 小时前
私家车开车回家过节会发生什么事情
java·开发语言·软件构建·1024程序员节