-
设计方法,计算两个日期之间相差多少天。两个日期的年月日由参数控制。
package com.qf.methodwork; //设计方法,计算两个日期之间相差多少天。两个日期的年月日由参数控制。 public class calcDate { public static void main(String[] args) { String star="2021-07-18"; String end="2022-07-21"; String[] star1=star.split("-"); String[] end1=end.split("-"); int days=0; if(Integer.parseInt(star1[0])<Integer.parseInt(end1[0])){ for(int i=Integer.parseInt(star1[0]);i<Integer.parseInt(end1[0]);i++){ //计算是否是瑞年 if(i%4==0&&i%100!=0||i%400==0){ days+=366; }else{ days+=365; } } } //得到开始那一年已过去的日期 int starday=days(star1[0],star1[1],star1[2]); //得到结束那一年已过去的日期 int endday=days(end1[0],end1[1],end1[2]); //减去开始那一年已过去的日期,加上结束那一年已过去的日期 days=days-starday+endday; System.out.println("相差的天数:"+days); } public static int days(String year,String month,String day){ int days=0; int nowyear=Integer.parseInt(year); int[] monthday={0,31,28,31,30,31,30,31,31,30,31,30,31}; int[] monthday1={0,31,29,31,30,31,30,31,31,30,31,30,31}; boolean flag=true; if(nowyear%4==0&&nowyear%100!=0||nowyear%400==0){ }else{ flag=false; } for(int i=0;i<Integer.parseInt(month);i++){ if(flag){ days+=monthday1[i]; }else{ days+=monthday[i]; } } days+=Integer.parseInt(day); return days; } } run: 相差的天数:368
-
开发一个标题为“FlipFlop”的游戏应用程序。它从 1 计数到 100,遇到 3 的倍数就替换为单词“Flip”,5 的倍数就替换为单词“Flop” ,既为 3 的倍数又为 5 的倍数则替换为单词“FlipFlop
package com.qf.methodwork; import java.util.Scanner; //开发一个标题为“FlipFlop”的游戏应用程序。 // 它从 1 计数到 100,遇到 3 的倍数就替换为单词“Flip”, // 5 的倍数就替换为单词“Flop” , // 既为 3 的倍数又为 5 的倍数则替换为单词“FlipFlop” public class DesignGame { public static void main(String[] args) { /* * 可以从控制台输出标题 进行相关的提示 * 调用方法method */ /*Scanner input =new Scanner(System.in); System.out.println("请输入标题:FlipFlop"); String title = input.next();*/ method("FlipFlop"); } /*分析: * 1.定义一个String 变量存下标题FlipFlop * 方法内部for循环100次 * for循环内部嵌套if语句 ifi%3==0 修改 * ifi%5==0 修改 * ifi%3==0 %% i%5==0 修改 * else 输出原来的标题*/ public static void method(String gname){ /*应该先定义好要修改的标题*/ String g1 = "flip"; String g2 = "flop"; for (int i = 0; i < 100; i++) { if (i%3==0 && i%5!=0){ System.out.println("i="+i+",标题"+g1); }else if (i%5==0 && i%3!=0){ System.out.println("i="+i+",标题"+g2); }else if (i%3==0 && i%5==0){ System.out.println("i="+i+",标题"+gname); }else{ System.out.println("i="+i+",不符合游戏规则"); } } } } running: i=0,标题FlipFlop i=1,不符合游戏规则 i=2,不符合游戏规则 i=3,标题flip i=4,不符合游戏规则 i=5,标题flop i=6,标题flip i=7,不符合游戏规则 i=8,不符合游戏规则 i=9,标题flip i=10,标题flop i=11,不符合游戏规则 i=12,标题flip i=13,不符合游戏规则 i=14,不符合游戏规则 i=15,标题FlipFlop ......
3.两个自然数X,Y相除,商3余10,被除数、除数、商、余数的和是163,求被除数、除数。
package com.qf.methodwork; //两个自然数X,Y相除,商3余10, // 被除数、除数、商、余数的和是163, // 求被除数、除数。 public class divisioncalc { public static void main(String[] args) { /* * 0<=a<=150 * 1<b<150 * a+b=150 * a/b==3 a%b==10*/ /*写一个for循环代替a*/ for (int a = 0; a < 150; a++) { for (int b = 1; b <a/3 ; b++) { if((a/b==3) && (a%b==10) && (a+b==150)){ System.out.println("被除数a="+a+",除数b=:"+b); } } } } } run: 被除数a=115,除数b=:35
4.某数学竞赛中,参赛人数大约在380~450人之间。比赛结果,全体考生的总平均分为76分,男生的平均分为75分,女生的平均分为80.1分,求男女生各有多少人?
package com.qf.methodwork; //某数学竞赛中,参赛人数大约在380~450人之间。 // 比赛结果,全体考生的总平均分为76分, // 男生的平均分为75分,女生的平均分为80.1分, // 求男女生各有多少人? public class CalcNum { public static void main(String[] args) { /* * 总人数的范围 380-450 * 一个变量存储总人数:int all = ; * 总体平均分76 * 男生平均分75 * 女生平均分80.1 * */ /*定义一个变量存储所有男生的总分数*/ long M; /*定义一个变量存储所有女生的总分数*/ long W; for ( M = 1; M <=450 ; M++) { for (W = 1; W <=450 ; W++) { /*开始进行判断*/ if((M+W>+380) && (M+W<=450) && (M*75)+(W*80.1)==76*(M+W)){ System.out.println("男生="+M+"人,女生="+W+"人"); } } } } } run: 男生=328人,女生=80人
-
使用递归计算1+2+3+...+100的和
package com.qf.methodwork; // 使用递归计算1+2+3+...+100的和 public class CalcNumSum { public static void main(String[] args) { long result = calcSum(100); System.out.println("1+2+3+...+100的和="+result); } /*递归就是在一个方法内 调用方法本身 * 创建一个递归函数 **/ public static long calcSum(int n){ if (n==1){ return 1; } return calcSum(n-1)+n; } } run: 1+2+3+...+100的和=5050S
-
6.使用递归输出30位的斐波那契数列