精華區beta C_and_CPP 關於我們 聯絡資訊
很直觀的應該是要相減再絕對質 可是一直wrong answer 以下是題目 ****************************************************************************** Hashmat是一個勇敢的將領,他帶著年輕的士兵從這個城市移動到另一個城市與敵人對抗 。在打仗之前他會計算己方與敵方士兵的數目差距,來決定是要開打或不開打。Hashmat 的士兵數絕不會比敵人的士兵數大。 Input 每組測試資料1列,有2個整數,代表Hashmat及敵人的士兵數或反之。這些數不會超過232 。 Output 對每組測試資料請輸出Hashmat與敵人士兵數目的差(正數)。 Sample input 10 12 14 10 100 200 Sample Output 2 4 100 ****************************************************************************** 以下是我的code #include<stdio.h> #include<math.h> int main() { unsigned int a,b; while((scanf("%d %d",&a,&b))!= EOF) { printf("%d\n",abs(a-b)); } return 0; } 拜託高手幫我看看囉 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.104.93
latinboy:他的數字範圍超過int上限 改用long long宣告即可 12/15 21:28
idicivik:題目有說不會超過 2 的32次方歐 所以你要做大數運算處理 12/15 21:28
cplusplus:才2的32次方 不用做大數運算~~ 一般運算就好了~ 12/15 22:07
ssagit:latinboy說得對, 只要用 long long int 宣告就行了.... 12/15 23:27
> -------------------------------------------------------------------------- < 作者: bryanliu (自以為是的白痴) 看板: C_and_CPP 標題: Re: [問題] acm10055 時間: Fri Dec 16 01:05:41 2005 C:\Documents and Settings\bryanliu\桌面\acm\10055.c(7) : error C2632: 'long' followed by 'long' is illegal 現在跑出來這個 = = 為什麼阿 是要INCLUDE別的檔案嗎? 順便問一下LONG LONG INT 的 printf 和 scanf 的%之後要接什麼?? 請教各位高手囉~~ ※ 引述《bryanliu (自以為是的白痴)》之銘言: : 很直觀的應該是要相減再絕對質 : 可是一直wrong answer : 以下是題目 : ****************************************************************************** : Hashmat是一個勇敢的將領,他帶著年輕的士兵從這個城市移動到另一個城市與敵人對抗 : 。在打仗之前他會計算己方與敵方士兵的數目差距,來決定是要開打或不開打。Hashmat : 的士兵數絕不會比敵人的士兵數大。 : Input : 每組測試資料1列,有2個整數,代表Hashmat及敵人的士兵數或反之。這些數不會超過232 : 。 : Output : 對每組測試資料請輸出Hashmat與敵人士兵數目的差(正數)。 : Sample input : 10 12 : 14 10 : 100 200 : Sample Output : 2 : 4 : 100 : ****************************************************************************** : 以下是我的code : #include<stdio.h> : #include<math.h> : int main() : { : unsigned int a,b; : while((scanf("%d %d",&a,&b))!= EOF) : { : printf("%d\n",abs(a-b)); : } : return 0; : } : 拜託高手幫我看看囉 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.143.223.103
ssagit:看看這個網頁的第二段, 是用 %lld 就行了.... 12/16 01:07
ssagit:你的錯誤是你的 Compiler 不支援這個型態, 不過你還是可以 12/16 01:08
ssagit:用這個型態直接把程式送給 ACM 做 Judge, 因為 ACM 有支援. 12/16 01:08
bryanliu:感謝萬分 ^^ 12/16 01:27
bryanliu:再問一下 LONG LONG INT 是幾BYTE呢?? 12/16 01:29
UNARYvvv:平常用的是 64 bits => 8 bytes 12/16 01:36
UNARYvvv:你是用 VC6 嗎? 那先用 __int64 替代用來測試你的程式吧 12/16 01:37
UNARYvvv:要送上去的時候再改成 long long 12/16 01:38
bryanliu:恩 式VC6 請問什麼時候要用底線的這種表示法呢?? 12/16 01:44
bryanliu:LONG不是就可以容納下2^32了媽 為啥要用到兩個 12/16 02:15
bryanliu:那再請問 8BYTE 是不是(2^8)^8 這樣去算的阿 12/16 02:17
ssagit:unsigned long int 最大到 2^32-1, 但是題目是說士兵最大到 12/16 02:46
ssagit:2^32, 所以才要改用 long long int ..... 12/16 02:47
rephansu:那個EOF到底是要等於什麼的時候才會離開程式? 12/16 11:21
UNARYvvv:應該要改成 while ((scanf(...))==2) 12/16 23:02
UNARYvvv:判斷不等於可是有可能等於 1 的 12/16 23:03