Test Message

d068: 該減肥了!

內容

珊珊開了一家體重管理中心。每當有新顧客上門,她就為她量體重。如果體重大於 50 公斤,她就免費送她一堂可以減一公斤的體驗課程。給你新顧客的體重,請輸出她離開中心時的體重。


輸入

輸入只有一行,其中含有一個正整數 w,代表新顧客進門的體重。

60

輸出

請輸出該顧客離開時的體重。

59

提示

你能只用算術、比較運算子而不用 if 解出這題嗎?


解題思路

利用條件判斷成立時為 1 不成立為 0 的特性,若成立(大於 50 公斤)時將原重量減去 1 反之則減 0。


完整程式碼

AC (2ms, 112KB)
#include<stdio.h>

int main()
{
int w;
scanf(" %d", &w);
printf("%d", w - (w > 50));
return 0;
}

d067: 文文的求婚--續集 (1 行版)

內容

承 a004,珊珊終於學成歸國了,文文的考驗時刻也到了。走出了迎客大廳,珊珊問:「What type of the year was I born in?」文文很有自信的回答:「閏年!」可是珊珊卻說:「No, It was a LEAP YEAR!」看來文文要娶到珊珊,還得先把英文練一練。


輸入

輸入只有一行,其中含有一個正整數 y,代表珊珊生日的西元年份。

1992

輸出

若 y 是閏年,請輸出「a leap year」,否則請輸出「a normal year」

a leap year


解題思路

簡單的條件判斷。


完整程式碼

AC (2ms, 96KB)
#include <stdio.h>

int main()
{
int y;
scanf(" %d", &y);
if (!(y % 400) || !(y % 4) && (y % 100))
puts("a leap year");
else
puts("a normal year");
return 0;
}

d066: 上學去吧!

內容

板橋高中規定同學必須在 7:30 以前到校早自習,最後一堂課則在 17:00 下課。給你現在的時間,請判斷現在是不是必須在學校的時間。


輸入

輸入只有一行,其中含有兩個由空隔開的整數 hh 及 mm,hh:mm 則代表現在的時間 (24 小時制)。

17 00

輸出

如果現在是上學時間,請輸出「At School」,否則請輸出「Off School」

Off School


解題思路

簡單的多重判斷。


完整程式碼

AC (2ms, 88KB)
#include <stdio.h>

int main()
{
int h, m;
scanf(" %d %d", &h, &m);
if (h == 7 && m >= 30 || h > 7 && h < 17)
puts("At School");
else
puts("Off School");
return 0;
}

d065: 三人行必有我師

內容

文文和兩個同學最近喜歡在 ZeroJudge 上解題。有一天他們看到了孔子說的:「三人行必有我師焉。」就吵了起來,因為他們每個人都認為自己是三個人之中的「老師」。後來他們決定要比比看誰在 ZeroJudge 上的 AC 題數最多。


輸入

輸入只有一行,含有三個由空白所隔開的非負整數。

35 26 48

輸出

輸出這三個整數中最大的那一個。

48


解題思路

簡單的條件判斷。


完整程式碼

AC (2ms, 96KB)
#include <stdio.h>

int main()
{
int a, b, c;
scanf(" %d %d %d", &a, &b, &c);
printf("%d\n", a > b && a > c ? a : b > c ? b : c);
return 0;
}

d064: ㄑㄧˊ 數?

內容

英文的 Odd 是「奇怪」的意思,Odd Number 當然就是「奇怪的數字」簡稱「奇數」。問題是「奇數」倒底是唸成「ㄐㄧ數」或是「ㄑㄧ ˊ 數」呢?


輸入

輸入只有一行,其中含有一個整數 i。

1

輸出

如果 i 是奇數,輸出 Odd;如果 i 是偶數,則輸出 Even。

Odd


解題思路

簡單的條件判斷。


完整程式碼

AC (2ms, 104KB)
#include <stdio.h>

int main()
{
int n;
scanf(" %d", &n);
puts(n & 1 ? "Odd" : "Even");
return 0;
}

d063: 0 與 1

內容

文文上了他的第一堂電腦概論,老師說電腦內部是由很多的小開關來組成:1 代表開、0 代表關。於是聰明的文文便瞭解了,原來我們平常使用電燈開關就是把 1 變成 0、0 變成 1 嘛!


輸入

輸入只有一行,含有一個為 0 或 1 的整數。

1

輸出

輸入為 0 則輸出 1;輸入為 1 則輸出 0。

0

提示

你能不用 if 指令,只用算術或關係運算子做出這題嗎?


解題思路

利用 邏輯 not('!')運算子 0 會變 1、1 會變 0 的特性來取帶 if 判斷。


完整程式碼

AC (2ms, 84KB)
#include<stdio.h>

int main()
{
int n;
scanf(" %d", &n);
printf("%d", !n);
return 0;
}

d060: 還要等多久啊?

內容

文文又想打電話給珊珊,可是這次他碰到了另一個問題。珊珊說他們學校每堂課 50 分鐘,下課的時間都是整點過後 25 分,休息 10 鐘後再上下一節課。文文不想打擾珊珊上課,也不想才剛打通電話她就要上課去了,因此他決定一定要在剛好 25 分的時候打電話給她。給你現在的時間的分,請你幫他算算看還要等多久才能打電話給珊珊?


輸入

輸入只有一行,包含現在時間的分 m (0 ≤ m ≤ 59)。

20

輸出

輸出還要等幾分鐘文文才能打電話。

5


解題思路

時間為 25 分但輸入可能大於 25,所以再加上 60 避免負值出現,所以用 85 減掉 n 之後和 60 取餘即可。


完整程式碼

AC (2ms, 120KB)
#include <stdio.h>

int main()
{
int n;
scanf(" %d", &n);
printf("%d\n", (85 - n) % 60);
return 0;
}

d058: BASIC 的 SGN 函數

內容

在 BASIC 語言中有一個 SGN 函數,(VB .Net 改成 Math.Sign),它會根據參數的正負號傳回 1, 0, 或 -1。請你寫一個程式來模仿這個函數,給你一個整數 n,若 n > 0 請輸出 1,若 n = 0 請輸出 0,若 n < 0 請輸出 -1。


輸入

輸入只有一行,其中含有一個整數。

-9

輸出

依題目說明,請輸出 1、0、或 -1。

-1

提示

你能只用關係運算子及算術運算子來求出解答,而不需要用到 if 指令嗎?


解題思路

簡單的條件判斷,用三元運算子('?')取代 if 即可。


完整程式碼

AC (2ms, 104KB)
#include <stdio.h>

int main()
{
int n;
scanf(" %d", &n);
printf("%d\n", n > 0 ? 1 : n < 0 ? -1 : 0);
return 0;
}

d051: 糟糕,我發燒了!

內容

珊珊在美國讀書,有一天覺得昏沉沉的全身不舒服,心想自己是不是發燒了。到藥局買了一支體溫計量了一下體溫,發現她的體溫是華氏 104 度。習慣了台灣的攝氏,她一時還不知道自己的體溫到底有多燒。你能不能幫她寫個程式,把華氏的溫度轉成攝氏的溫度。


輸入

輸入僅有一行,含有一個整數 f (-460 ≤ f ≤ 2147483647),代表華氏溫度。

104

輸出

輸出計算所得的攝氐溫度,精確到小數點以下三位。

40.000


解題思路

華氏轉攝氏公式

°C = (℉ - 32) / 1.8


完整程式碼

AC (2ms, 100KB)
#include <stdio.h>

int main()
{
int n;
scanf(" %d", &n);
printf("%.3lf\n", (double)(n - 32) / 1.8);
return 0;
}

d050: 妳那裡現在幾點了?

內容

珊珊到了美國猶他州的楊百翰大學之後,文文禁不住對她的思念,常常想打電話給她,卻又擔心在美國的她是不是在睡覺。好不容易鼓起勇氣打通了電話,第一句就先問:「妳那裡現在幾點了?」請你幫文文寫一個程式,輸入台灣時間後,算出美國山區時間。


輸入

輸入僅有一行,其中含有一個整數 h (0 ≤ h ≤ 23),代表台灣時間現在幾點 (24 小時制)。因為美國時間的分與台灣時間的分相同,因此幾分就不用輸入計算了。

21

輸出

輸出美國山區時間 (24 小時制)。台灣的時間比美國山區時間快 15 小時 (不考慮日光節約時間)。

6


解題思路

因為台灣快美國 15 小時,所以當 n >= 15 時,台灣和美國同一天直接減 15 就好,反之 n < 15 時台灣和美國不同天 -15 完之後會是負值,再加 24 回來,也就是變成 +9。


完整程式碼

AC (2ms, 104KB)
#include<stdio.h>

int main()
{
int n;
scanf(" %d", &n);
printf("%d", n >= 15 ? n - 15 : n + 9);
return 0;
}
1101112131427