• 循环练习记录


    用IntelliJ IDEA写的代码。

    import java.util.Scanner;

    /**
    * 循环训练
    * 1.计算1+2+3+..+100的和; 2.计算n!; 3.根据出入的年、月、日计算这一天星期几
    */
    public class XunHuan {
    /**
    * 计算1+2+3+..+100的和
    * @param
    */
    static int sum(){
    int s=0;
    int i=1;
    //for(int i=1;i<=100;i++) s=s+i; //用for循环的写法
    while (i<=100){
    s=s+i;
    i=i+1;
    }
    return s;
    }

    /**
    * 计算n!
    * @return 阶乘
    */
    static double jieChen(int n){
    double j=1;
    //for(i=1;i<=n;i++) j=j*i; //用for循环的写法
    while (n>1){
    j=j*n;
    n--;
    }
    return j;
    }

    /**
    * 根据出入的年、月、日计算这一天星期几
    * (基础:1900年1月1日是星期一)
    * @param y 年
    * @param m 月
    * @param d 日
    * @return 星期几
    */
    static String week(int y,int m,int d){
    int days=(y-1900)*365;//days :总天数。从1900到y年的整年总天数(先假设每一年都是365天),暂时不算闰年多一天。
    //加上闰年的天数:
    for (int i=1900;i<y;i++){ //for循环
    if (i%4==0&&i%100!=0||i%400==0) days++; //括号里是闰年的算法
    }
    //加上1到m月的整月天数:
    for (int i=1;i<m;i++){
    switch (i){ //switch 语句用于基于不同的条件来执行不同的动作。
    // 表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行
    case 2:days+=28;
    if (y%4==0&&y%100!=0||y%400==0) days++;break; //使用 break 来阻止代码自动地向下一个 case 运行
    case 4: case 6: case 9: case 11: days+=30;break; //4,6,9,11几个月份时,总天数加30
    default:days+=31;break;
    }
    }
    days+=d;//加上这个月的天数
    String[] s={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; //定义一个数组
    return s[days%7]; //总天数对7取余,余数对应数组中的元素
    }

    //测试
    public static void main(String[] args){
    // 1....100的和 测试
    int s=sum();
    System.out.println("1....100的和是:"+s);
    //阶乘方法 测试
    int n;
    Scanner in=new Scanner(System.in);
    System.out.println("请输入n的值:");
    n=in.nextInt();
    double j=jieChen(n);
    System.out.println(n+"!="+j);
    //输出星期几 测试
    System.out.println("请输入年月日(用空格隔开):");
    int y,m,d;
    y=in.nextInt();m=in.nextInt();d=in.nextInt();
    String w=week(y,m,d);
    System.out.println(y+"年"+m+"月"+d+"日"+" "+w);
    }
    }
  • 相关阅读:
    HashMap底层实现原理(JDK1.8)源码分析
    JVM总结
    初识Nosql
    线程池总结
    Linux中常用操作命令
    JAVA—集合框架
    TeKtronix TDS210数字示波器使用简介
    硬盘的物理结构
    Unicode 与 UTF
    I2C串行总线
  • 原文地址:https://www.cnblogs.com/tian-xin/p/8383820.html
Copyright © 2020-2023  润新知