先写思路,再写代码,思路清晰,才能写对代码
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(); //输入nint m = scanner.nextInt(); //输入m//需要输入两次
数字所占空格
for (int k = 1; k <= m; k++) {// 每个数字占四个字符位置,不足部分用空格填充System.out.printf("%4d", number++);}
换行
System.out.println(); // 每层输出后换行
7-8 百钱买百鸡
思路:
这种复杂的配凑问题,不要去想枚举去解,充分利用for循环语句
像这题我们就用了两个for循环,让代码自己去配凑,一但成功就输出它
代码(一):
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 + "只小鸡");}}}}
}
代码一缺点:
不能控制数字的所占的位置
知识点:
定义变量
final int totalMoney = 100; // 总共有100块钱final int totalChickens = 100; // 总共有100只鸡
代码(二):
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();}}}}}
代码二优点:
可以控制数字的所占位置
知识点:
System.out.printf("公鸡%2d只,母鸡%2d只,小鸡%2d只",male,fmale,chk);
控制所占位置
总结:
到这里,java第一次作业就写完了,以后要学习课程跟着走,不落后,从现在开始每两天一题打卡,继续学习java。
不要为了敲代码而敲,主要是学习,总结,进步,收获。