# Arithmetic# Conditional Expression# Basic Math

b877 - 我是電視迷

🔗 前往 ZeroJudge 原題

題目描述

題目要求計算從當前頻道切換到目標頻道所需的按鈕次數,電視共有 100 個頻道 (0-99),每次只能切換到下一個頻道。

解題思路

題目可以轉換為計算兩個頻道編號之間的差值。如果目標頻道編號大於當前頻道編號,則直接相減即可。如果目標頻道編號小於當前頻道編號,則需要考慮環繞的情況,計算從當前頻道到 99 再到目標頻道的距離,即 100 - 當前頻道 + 目標頻道。程式碼使用條件判斷式來處理這兩種情況。也可以使用算術運算符來簡化程式碼,避免使用 if 判斷式。

複雜度分析

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

程式碼

#include <stdio.h>
int main(){
	int a,b;
	while(scanf("%d%d",&a,&b)>0){
		if(a>b)
			printf("%d\n",100-a+b);
		else 
			printf("%d\n",b-a);
	}
}

Discussion