java算法小问题

import java.util.Scanner;
public class Day {
 public static void main(String[] args) {
  int[] days = {31,0,31,30,31,30,31,31,30,31,30,31};
  Scanner in = new Scanner(System.in);
  
  System.out.println("输入年份:");
  int year = in.nextInt();
  
  System.out.println("输入月份:");
  int mouth = in.nextInt();
  
  System.out.println("多少号:");
  int day = in.nextInt();

if (year % 100 != 0) {
   if (year % 4 == 0) {
    days[1] = 29;  
   } else {
    days[1] = 30;
   }
  } else {
   if (year % 400 == 0) {
    days[1] = 29;
   } else {
    days[1] = 30;
   }
  }
  int all = 0;
  mouth -= 2;
  for (int i = 0; i <= mouth; i++) {
   all += days[i];
  }
  System.out.println(all+day);
 }
}

纯手打~~~

时间: 2024-10-25 05:25:59

java算法小问题的相关文章

Java算法小程序(2)

6.把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. a)使用ArrayList来存放元素 public class Solution { public static int minNumberArray(int[] array) { int min = array[0]; for(int i = 0; i < array.length; i++){ if(min > array[i]){ min = array[i]; } } return min; } public Ar

java算法小知识练习

偶尔翻开了以前的练习题,不自觉又想随手敲一遍,虽然有些思想依然是那么老套,但毕竟也算是对知识的巩固 了. 一.题目:有1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 具体思路很简单,就是拿出一个数,跟其他三个中的任意两个不重复的组,最后加起来, /** * 题目:有1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? * 时间:2016年3月10日21:34:15 * */ public class Zushu { public static

Java算法小程序(1)

1.在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. a)        常规程序,直接遍历二维数组 public class Solution { public boolean Find(int [][] array,int target) { int flag = 0; for(int i = 0; i < array.length; i++){ int[] arr2 = a

java每日小算法(27)

/* [程序27]  题目:求100之内的素数    */ package test; import java.util.Scanner; public class test { public static boolean prime(int number) { boolean flag = true; int mid = (int)Math.sqrt(number); for(int i = 2; i< mid+1; i++) { if(number % i == 0) { flag = fa

java每日小算法(4)

[程序4] 题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步. (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步. package test; import java.util.ArrayList;

java每日小算法(10)

/*[程序10]  题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? */ package test; public class test { public static void main(String[] args) { // TODO Auto-generated method stub double high = 100.0; double jump = 0.0; double sum = 0.0; for(

java每日小算法(3)

[程序3] 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位. package test; public class test { public static boolean daffodil(int num) { boolean flag

java每日小算法(6)

/*[程序6] 题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 1.程序分析:利用辗除法. */ package test; public class test { //最大公约数 public static int commonisor(int n, int m) { int max = (n>=m)?n:m; int min = (n>=m)?m:n; int r = max % min; while(r != 0) { max = min; min = r; r = max %

java每日小算法(5)

/*[程序5] 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示. 1.程序分析:(a>b)?a:b这是条件运算符的基本例子. */ package test; public class test { public static String grade(int num) { String result = (num>=90)?"A":(num>=60)?"B":&quo