2015年6月6日 星期六

d064:ㄑㄧˊ 數?(17)

d064: ㄑㄧˊ 數?(17)

更新時間:2016/12/20
內容
  英文的 Odd 是「奇怪」的意思,Odd Number 當然就是「奇怪的數字」簡稱「奇數」。問題是「奇數」倒底是唸成「ㄐㄧ數」或是「ㄑㄧˊ 數」呢?
輸入說明
  輸入只有一行,其中含有一個整數 i。
輸出說明
  如果 i 是奇數,輸出 Odd;如果 i 是偶數,則輸出 Even。
範例輸入
  1
範例輸出
  Odd
提示
背景知識
  運算子、If



想一想,再看解答~


我的解題想法
  把輸入的數字除以 2 取餘數,如果餘數為 1,則為 Odd;否則為 Even。

♠使用 判斷式 if-else 的解法
程式碼
#include <stdio.h>
int main(void){
    long long int i;
    scanf("%lld",&i);
    if(i%2==1){
        printf("Odd");
    }else{
        printf("Even");
    }
    return 0;
}
程式碼解析
#1:引入標準輸入/輸出串流。
#2:主程式開始,回傳引數int,沒有參數。
#3:宣告1個長長整數(long long int)變數「i」,範圍–9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
#4:從標準輸入讀取格式化數據。讀取1個長長整數(%lld),指定值給「i」。
#5:邏輯判斷式 if 開始。判斷 輸入的整數除以 2 的餘數 是否等於 1 (i%2==1)。
#6:將格式化數據顯示到標準輸出。輸出字串「"Odd"」。
#7:邏輯判斷 else。
#8:將格式化數據顯示到標準輸出。輸出字串「"Even"」。
#9:邏輯判斷式 if 結束。
#10:主程式回傳整數「0」。
#11:主程式結束。





♠使用 三元運算子 ? : 的解法
程式碼
#include <stdio.h>
int main(void){
    long long int i;
    scanf("%lld",&i);
    printf("%s", i%2==1 ? "Odd" : "Even");
    return 0;
}
程式碼解析
#1:引入標準輸入/輸出串流。
#2:主程式開始,回傳引數int,沒有參數。
#3:宣告1個長長整數(long long int)變數「i」,範圍–9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
#4:從標準輸入讀取格式化數據。讀取1個長長整數(%lld),指定值給「i」。
#5:將格式化數據顯示到標準輸出。輸出1個字串(%s)「i%2==1 ? "Odd" : "Even"」。
如果 i%2==1 成立,輸出"Odd";否則輸出"Even"。
#6:主程式回傳整數「0」。
#7:主程式結束。