# Conditional Statements# Input/Output# Date Handling

e700 - 星座

🔗 前往 ZeroJudge 原題

題目描述

題目要求根據輸入的月份和日期,判斷並輸出對應的星座。輸入為多行,每行包含月份和日期,以 / 分隔。

解題思路

此題的解題思路是使用一系列的 if-else if-else 條件判斷語句,根據輸入的月份和日期,判斷其所屬的星座。由於星座的日期範圍是連續的,因此可以通過比較月份和日期來確定星座。程式碼直接根據題目提供的星座日期範圍進行判斷,並輸出對應的星座名稱。

複雜度分析

  • 時間複雜度: O(1)
  • 空間複雜度: O(1)

程式碼

#include <stdio.h>
int main(){
	int m,n;
	while(scanf("%d/%d",&m,&n)>0){
		if((m==1&&n>=21)||(m==2&&n<=19))
			printf("水瓶座\n");
		else if((m==2&&n>=20)||(m==3&&n<=20))
			printf("雙魚座\n");
		else if((m==3&&n>=21)||(m==4&&n<=20))
			printf("牡羊座\n");
		else if((m==4&&n>=21)||(m==5&&n<=21))
			printf("金牛座\n");
		else if((m==5&&n>=22)||(m==6&&n<=21))
			printf("雙子座\n");
		else if((m==6&&n>=22)||(m==7&&n<=22))
			printf("巨蟹座\n");
		else if((m==7&&n>=23)||(m==8&&n<=21))
			printf("獅子座\n");
		else if((m==8&&n>=22)||(m==9&&n<=23))
			printf("處女座\n");
		else if((m==9&&n>=24)||(m==10&&n<=23))
			printf("天秤座\n");
		else if((m==10&&n>=24)||(m==11&&n<=22))
			printf("天蠍座\n");
		else if((m==11&&n>=23)||(m==12&&n<=22))
			printf("射手座\n");
		else 
			printf("摩羯座\n");
	}
}

Discussion