ALGOPRO6 - Giá trị của năm

Link Sub: https://www.spoj.com/PTIT/problems/ALGOPRO6/
Người Gửi: Dương Lee

  • Problem:

Bạn được yêu cầu viết 1 chương trình tính toán với công việc như sau: Cho một năm thuộc đoạn 1900 – 2100, hãy tính giá trị của năm đó.  
Ta có giá trị của 1 ngày được tính bởi công thức:  
Val = tổng các chữ số của ngày + tổng các chữ số của tháng + tổng các chữ số của năm.  
Giá trị của năm bằng tổng giá trị của tất cả các ngày trong năm đó.  
Ví dụ giá trị của ngày 4/4/2016 là 4 + 4 + 2 + 0 + 1 + 6 =  17.
Input
Dòng duy nhất chứa số năm.
Output
In ra duy nhất 1 số là đáp án của bài toán.
Example:
Input
2016
Output:
6891

  • Solution:

- Bài này yêu cầu tổng tất cả các giá trị các ngày trong vòng một năm. Vậy nên ngoài việc xác định tháng có 30 và 31 ngày thì cũng phải cần xác định tháng 2 trong năm đó là tháng có 28 hay 29 ngày.
- Đối với năm nhuận: là năm chia hết cho 4 và không chia hết cho 100 hoặc là năm chia hết cho 400 thì năm đó sẽ có tháng 2 có 29 ngày.

  • Code:

C++:

https://ideone.com/PKBppU
#include <iostream>
using namespace std;

int main ()
{
    int n;
    cin>>n;
    int ngay;
    int s=0;
    for (int i=1; i<=12; i++)
    {
        if (i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12)
            ngay=31;
        else if (i==2)
        {
            if ((n%4==0 && n%100!=0) || (n%400==0))
                ngay=29;
            else
                ngay=28;
        }
        else
            ngay=30;
            
        for (int j=1; j<=ngay; j++)
        {
            s=s+(j/10)+(j%10)+(i/10)+(i%10)+n/1000+(n/100)%10+(n/10)%10+n%10;
        }
    }
    cout<<s;
}

JAVA:

...

Python:

...

Share this

Related Posts

Previous
Next Post »