---
# System prepended metadata

title: '[109-cpi] HW1'
tags: [' 109', ' cpi', homework]

---

---
tags: homework, 109, cpi
title: '[109-cpi] HW1'
---

# Homework 1

> Week 2 (9/21), Due: 9/28 09:00:00\
> [I/O補充內容](https://hackmd.io/YV8EdYzAQ1W_7sJMkD5Dqg)

* 範圍：Introduction、Variable
* 僅 printf, scanf，跳脫字元 & %
* NOJ 

## 元氣滿滿的書記
> [name=博傑]

### 敘述

某學園學生會的書記，簡稱書記，是個充滿朝氣的~~亂源~~女孩，總是能豪不在意的無視尷尬的氣氛，蹦出驚人之語打破僵局。現在，請你寫個程式，幫書記跟大小姐道早安吧。

### 測資說明

**Input**

本題無輸入

**Output**

請你輸出 `Ohayo, Kaguya chan!!!` 於一行，代表書記的招呼語

### Sample Input

```
```

### Sample Output

```
Ohayo, Kaguya chan!!!
```

---

## 會長的生日蛋糕
> [name=映達]

### Description

明天就是 9 月 9 號了，也是會長的生日，大小姐準備了一個超～巨大蛋糕要幫會長慶生。大小姐先將蛋糕藏在學生會室的一個超～巨大櫃子中，打算到時候可以給會長一個大驚喜。

害羞的大小姐卻遲遲不敢將蛋糕取出，為了不讓蛋糕過期，大小姐家的女僕必須確認食材的有效期限，卻發現鮮奶油包裝上有效期限的格式很奇怪，請你寫個程式來幫助大小姐和她的女僕！

鮮奶油的包裝上寫著 `06/12/2020`，其格式依序為：日、月、年，要請你將它改成更「淺顯易懂」的格式：`2020 年 12 月 06 日`。

### Input

只有一行輸入，包含一個日期：`dd/mm/yyyy`。

### Output

輸出一行，用淺顯易懂的格式：`yyyy 年 mm 月 dd 日`。

### Example Input

```
06/12/2020
```

### Example Output

```
2020 年 12 月 06 日
```

### Hint

需注意年、月、日的格式：

- 年為四位數，不足補 0。
- 月、日為二位數，不足補 0。

輸出時「年、月、日」和「數字」間記得加空格。

---

## 崩壞的減肥計劃
> [name=育辰]

### 敘述
L彥 最近暑假吃太多，睡飽吃，吃飽睡，發現自己變胖了想減肥，於是展開一連串的減肥計劃，開學後減少正餐數量並勤跑操場
***──「摁...我肯定瘦了！」***

於是去預約 $\text{In-body}$ 使用價值二十幾萬的高級儀器，測量體重、身高、脂肪比、肌肉量等等...孰料，這樣高檔的設備今天也出了一點狀況...

今假設 L彥 真實體重是 $65$，儀器上會顯示 $165$...
當他體重為 $87$，儀器上會顯示 $187$...

此時，L彥 很納悶真的變這麼胖嗎？從報告書上又看見脂肪比將近 $88%$, 開始崩潰
***──「這絕對是失敗的減肥計劃啊啊啊！」***

設 L彥 真實體重為 $K$，並以 $K_i$ 表示其 第 $i$ 位數之數值，依高中數學，我們知道 $\left \lfloor{\log_{10}{K}} \right \rfloor + 1= \text{Digit Number}$，儀器上除了原本體重 $K$ 外，量測之數字 $P$，其共有$(\left \lfloor{\log_{10}{K}} \right \rfloor + 2)$ 位數，且 $P_{((\left \lfloor{\log_{10}{P}} \right \rfloor)+1)} = 1$ (即儀器顯示數值之最高位為 $1$)


請你寫出一個程式，告訴他真相！
給定一數字 $P$ 表示儀器上顯示的體重，請輸出其真實體重 $K$。


**注意**
* 本題的 $\text{log}$ 之使用符號，如: $\left \lfloor{\log_{10}{2}}\right \rfloor$**表向下取整，即無條件捨去到個位數**，在這邊以 $(\left \lfloor{\log_{10}{n}} \right \rfloor + 1)$想表達的是「有幾位數」
* 體重如下測資說明之範圍，題目並沒有提到體重所使用的「單位」，數值超出常理，單位轉換一下就會符合真實情境了，勿執著於這點


### 測資說明
**Input**
* Line $1$: 一整數 $P$
* **Limit** 
	* $10 \leq P \leq 2^{31}-1$
	* $P_{(1 + \left \lfloor{log_{10}{P}} \right \rfloor)} = 1$
    
**Output**
* Line $1$: 一整數 $K$, 需換行

### Sample Input

    192

### Sample Output

    92
	

> 出題點：在尚未學習字串處理、運算的情況下，要怎麼處理「壞掉的體重計」？其最高位數會異常的多顯示一個 $1$，同學讀取時必須了解 `scanf("____");` 中間處的格式涵義即可輕鬆作答\
> 子任務一：位數 $3$, $10$%\
> 子任務二：位數 $2~3$, $15$%\
> 子任務二：不限，唯受 $P$ 之條件限制, $75$%\
> \
> ps. 誤解題目的同學，會利用「事前」學會的運算，輸出 輸入整數再扣除100的結果(也受範例測資影響)，或是%100等等，若有人偷學判斷式，可能可以處理位數2-3的情況，僅能拿到25%的分數，不甚了解者會亂用，甚至用到字串處理，只需這樣讀取資料並輸出即可：
> `scanf("1%d", &a);`
