問題:Baden 制 1 英寸 = 3 厘米,1 英尺 = 12 英寸。給定 n 厘米(1≤n≤10000),轉換為英尺和英寸,使英尺數最大,結果四捨五入到最近英寸。特殊規則:1cm→0英寸,2cm→1英寸。
n / 3(整除),餘數 r = n % 3。r == 2 時進 1 英寸。#include <stdio.h>
#include <stdlib.h>
int main() {
int n, a, b;
scanf("%d", &n);
a = n / 36; // 直接得英尺
b = (n - 36*a) / 3; // 剩餘厘米轉英寸
if (n - 36*a - 3*b == 2) { // 餘2厘米進位
b++;
if (b == 12) { a++; b = 0; }
}
printf("%d %d\n", a, b);
return 0;
}
| 輸入 | 輸出 | 說明 |
|---|---|---|
| 42 | 1 2 | 42cm = 14英寸 = 1英尺2英寸 |
| 5 | 0 2 | 5cm → 1英寸餘2cm → 進位為2英寸 |
| 36 | 1 0 | 恰好1英尺 |
| 38 | 1 1 | 38cm = 12.66英寸 → 1英尺1英寸 |
簡短題目卻暗藏四捨五入細節,是競技編程中「細節決定成敗」的典型例題。