程序员

每天一小练,防止手生(4)

2019-12-28  本文已影响0人  孟应杰

⭐ 我的网站: www.mengyingjie.com ⭐

📌题目

输入某年某月某日,判断这一天是这一年的第几天?

程序分析

以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天:

🎯实例
🐍Python
# Python 3.0+
year = int(input())
month = int(input())
day = int(input())
whichday = 0
monthdays = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)

for i in range(1, month):
    whichday += monthdays[i]
whichday += day;
if year % 400 ==0 or year % 100 != 0 and year % 4 ==0 and month > 2 :
    whichday +=1

print(whichday)
☕java
// java
package mengyingjie.org;

import java.util.Scanner;

public class fourth {
    public static void main(String[] args) {
        int year, month, day, whichDay = 0;
        int monthdays[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        Scanner scanner = new Scanner(System.in);
        year = scanner.nextInt();
        month = scanner.nextInt();
        day = scanner.nextInt();
        for (int i = 0; i < month - 1; i++) {
            whichDay += monthdays[i];
        }
        whichDay += day;
        if (year % 400 == 0 || year % 100 != 0 && year % 4 == 0 && month > 2) {
            whichDay ++;
        }
        System.out.println(whichDay);
    }
}
🍋C++
// c++
#include <iostream>

using namespace std;

int main() {
    int monthDays[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int year, month, day, whichDay = 0, i;
    cin >> year >> month >> day;
    if ((year % 100 != 0 && year % 4 ==0) || year % 400 == 0 )
        if (month > 2) whichDay += 1;
    for (i = 1; i < month; i++){
        whichDay += monthDays[i];
    }
    whichDay += day;
    cout << whichDay;

    return 0;
}

遇到此类问题,但看了文章还是未解决,
评论或加 QQ:781378815

上一篇 下一篇

猜你喜欢

热点阅读