Skip to main content

【UVa】10055 Hashmat the Brave Warrior

英文題目傳送門,中文題目傳送門

看了看題目,解題過程有以下幾個重點
  • 輸入輸出不會大於2^32,但是2^32本身就超過long int可以表述的範圍了,所以要用long long int,在scan跟printf要用%lld來截取跟輸出
  • 題目說Hashmat's soldier number is never greater than his opponent.是騙人的!如果只將敵人數目-Hashmet兵將數目是不會過的...需要加入判斷式決定減數跟被減數
以下為程式碼:

/*******************************************************/
/* UVa 10055 Hashmat the brave warrior                 */
/* Author: Near Lin                                    */
/* Version: 2015/07/07                                 */
/*******************************************************/
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
        
    long long int hashmet, opponent ;    
        
    while(scanf("%lld%lld", &hashmet, &opponent) != EOF){
        
        printf("%lld\n", (hashmet > opponent) ? hashmet - opponent : opponent - hashmet);
    
    }
    return 0;
}
  
紀錄一下這題的重點,C的資料表示與範圍:
int (32 bits): -2^(31)-1 ~ 2^(31)-1, (%d)(%i)
unsign int (32 bits): 0 ~ 2^(32)-1, (%u)

long int (32 bits):  -2^(31)-1 ~ 2^(31)-1, (%ld)
unsign long (32 bits): 0 ~ 2^(32)-1, (ULONG_MAX)(%lu)

long long int (64 bits):  -2^(63)-1 ~ 2^(63)-1, (%lld)
unsign long (64 bits): 0 ~ 2^(64)-1, (ULONG_MAX)(%llu)
這封郵件來自 Evernote。Evernote 是您專屬的工作空間,免費下載 Evernote

Comments

Popular posts from this blog

淺介I2C

I 2 C 起源 內部整合電路( Inter-Integrated Circuit, I 2 C, 讀做 I-square-C )是由飛利浦半導體公司開發的一種專用介面。 I 2 C 是以最少的連接線進行硬體佈線還要有靈活擴充的特性為目標而設計,最後出現了只有以序列資料線 SDA ( Serial DAta )及序列時脈線 SCL ( Serial CLock )來進行所有通訊的 I 2 C 介面, I 2 C 允許多主( master )多僕( slave )系統,其傳輸系統內每一個裝置都有唯一的地址可供辨識。資料的寫入和讀取都是由 master 主動發起, slave 無法主動向 master 回報,除非使用中斷腳通知 master 。 I 2 C 傳輸速度有慢(小於 100Kbps )、快( 400Kbps )及高速( 3.4Mbps )三種,每一種均可向下相容。 I 2 C 電路配置 如前所述 I 2 C 為兩線式,一為時脈線 SCL ,另一條為資料線 SDA ,硬體線路如圖 1 ,兩線皆為雙向性,且都需要透過高接電阻( pull-up, 對岸說的上拉電阻)接電。平常不使用時, SCL 與 SDA 的訊號都處於高電位。為了多裝置共線的功能,裝置的 SCL 和 SDA 腳位要為 開洩極( open-drain ) 或 開集極( open-collector ) 。一旦有一個腳位的開洩極導通接地,則整條線都為低電位,這種現象稱作 wired-AND 運作 ;如同邏輯 AND 運算,需要共接的腳位都是 1 (開洩極斷路),該條線的電位才是 1 。如果沒有開洩極的腳位,可以使用具內部高接電阻的腳位,當要輸出 1 時,則設定該腳位為高接型輸入腳;而輸出為 0 時,則改設定為輸出腳並輸出 0 的值。 圖 1. I 2 C 傳輸裝置接線 [1] I 2 C 通訊協定 為使說明部分更簡潔,首先介紹幾個名詞: 位元傳輸協定 當 master 要跟 slave 溝通時,會先有個起始條件( start condition )的訊號,結束時也會送出終止條件( stop condition )訊號。起始條件訊號

【Arduino】Timers, Registers, and Fast PWM Mode

由於Arduino預設的PWM控制方法僅有500Hz(好像還有另一個),想要知道怎樣才可以調整成其他頻率,以此做記錄。 先說明Timer設定方式、PWM Mode,之後會在Arduino上實做。 如果對_BV()沒有概念,可以參考 【Arduino I/O Ports】Control under avr-libc 這篇文章。

Emart Sunny Sale: 3D Shadow QR Code

  Emart是韓國連鎖超市,近期他們發現中午12:00到下午1:00的銷售量會明顯減少,為了提高銷售量他們製作出了帶有日晷概念的3D QR code。