首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

HDU 1076 An Easy Task:閏年查找問題解析與代碼

     編輯:關於C

問題描述

Ignatius 出生於閏年,想知道從某年份 Y 開始的第 N 個閏年是哪一年。輸入測試用例數 T,每組給定 Y 和 N (1 ≤ N ≤ 10000),輸出第 N 個閏年。若 Y 本身是閏年,則視為第 1 個。

閏年判斷規則:(Y % 4 == 0 && Y % 100 != 0) || Y % 400 == 0

解題思路

直接模擬即可:從年份 Y 開始逐年遞增,判斷是否為閏年,計數器遞減至 0 輸出當前年份。數據範圍較小(N ≤ 10000,年份增長約 4 萬年),暴力枚舉完全在時限內。

參考代碼 (C)

#include <stdio.h>

int main() {
    int ncase;
    scanf("%d", &ncase);
    while (ncase--) {
        int year, n;
        scanf("%d %d", &year, &n);
        for (int i = year; ; i++) {
            if ((i % 4 == 0 && i % 100) || i % 400 == 0) // 注意:i%100 非零即真
                n--;
            if (n == 0) {
                printf("%d\n", i);
                break;
            }
        }
    }
    return 0;
}

關鍵點提示

  • 條件 i % 100 利用 C 語言非零即真特性,等價於 i % 100 != 0。
  • 樣例驗證:2005 25 → 2108、1855 12 → 1904、2004 10000 → 43236。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved