#45234: c 詳解


imkarlaaaaa@gmail.com (Karla Hou)

學校 : 不指定學校
編號 : 269710
來源 : [182.234.156.122]
最後登入時間 :
2024-04-23 12:41:01
e553. 10162 - Last Digit -- UVA | From: [114.140.152.219] | 發表日期 : 2025-01-30 20:23

#include <stdio.h>
#include <string.h>


// 計算 x^y 的個位數(模 10)
int power_last_digit(int x, int y) {
    int result = 1;
    for (int i = 0; i < y; i++) {
        result = (result * x) % 10;  // 只保留個位數
    }
    return result;
}

int main() {
    char N[100];
    while (scanf("%s", &N) && strcmp(N, "0") != 0) {
        int length = strlen(N);


        int lastTwoDig;
        // 如果 N 的長度大於等於 2,計算最後兩位數
        if (length >= 2) {
            lastTwoDig = (N[length - 1] - '0') + ((N[length - 2] - '0') * 10);
        } else {
            // 如果 N 只有一位,則直接取這一位
            lastTwoDig = (N[length - 1] - '0');
        }


        int addNum = 0;

        for (int i = 1; i <= lastTwoDig; i++) {
            addNum = (addNum + power_last_digit(i, i)) % 10;  // 只保留個位數
        }

        printf("%d\n", addNum);
    }
    return 0;
}

 

 

 
ZeroJudge Forum