欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【hackerrank】-Day 26: Nested Logic

程序员文章站 2022-04-03 08:14:37
...

30-nested-logic

Objective
Today’s challenge puts your understanding of nested conditional statements to the test. You already have the knowledge to complete this challenge, but check out the Tutorial tab for a video on testing!

Task
Your local library needs your help! Given the expected and actual return dates for a library book, create a program that calculates the fine (if any). The fee structure is as follows:

If the book is returned on or before the expected return date, no fine will be charged (i.e.: .
If the book is returned after the expected return day but still within the same calendar month and year as the expected return date, .
If the book is returned after the expected return month but still within the same calendar year as the expected return date, the .
If the book is returned after the calendar year in which it was expected, there is a fixed fine of .
Input Format

The first line contains space-separated integers denoting the respective , , and on which the book was actually returned.
The second line contains space-separated integers denoting the respective , , and on which the book was expected to be returned (due date).

Constraints

Output Format

Print a single integer denoting the library fine for the book received as input.

Sample Input

9 6 2015
6 6 2015
Sample Output

45
Explanation

Given the following return dates:
Actual:
Expected:

Because , we know it is less than a year late.
Because , we know it’s less than a month late.
Because , we know that it was returned late (but still within the same month and year).

Per the library’s fee structure, we know that our fine will be . We then print the result of as our output.


Current Buffer (saved locally, editable)

def isFine(date_act_arr, date_exp_arr):
    if date_act_arr[2] > date_exp_arr[2]:
        return 10000
    elif date_act_arr[2] < date_exp_arr[2]:
        return 0
    else:
        if date_act_arr[1] > date_exp_arr[1]:
            return 500*(date_act_arr[1]-date_exp_arr[1])
        elif date_act_arr[1] < date_exp_arr[1]:
            return 0
        else:
            if date_act_arr[0] > date_exp_arr[0]:
                return 15*(date_act_arr[0]-date_exp_arr[0])  
            else:
                return 0

date_act_arr = list(map(int, input().rstrip().split()))
date_exp_arr = list(map(int, input().rstrip().split()))
fine = isFine(date_act_arr, date_exp_arr)
print(fine)

Congratulations!

You have passed the sample test cases. Click the submit button to run your code against all the test cases.

Testcase 0
Input (stdin)
9 6 2015
6 6 2015
Your Output (stdout)
45
Expected Output
45

相关标签: hackerrank