2011-11-12 06:44:18Morris
a286. 難道這就是命中注定
a286. 難道這就是命中注定
/**********************************************************************************/
/* Problem: a286 "難道這就是命中注定" from */
/* Language: C (579 Bytes) */
/* Result: AC(24ms, 296KB) judge by this@ZeroJudge */
/* Author: morris1028 at 2011-11-04 18:27:15 */
/**********************************************************************************/
#include<stdio.h>
#include<stdlib.h>
int Calu(int n) {
int sum = 0;
while(n) {
sum += n%10;
n /= 10;
}
return sum;
}
int main() {
int Y, M, D, n, i, MM, SS;
while(scanf("%d %d %d", &Y, &M, &D) == 3) {
MM = Calu(Y)+Calu(M)+Calu(D);
while(MM >= 10)
MM = Calu(MM);
scanf("%d", &n);
int Idx, min = 10;
for(i = 1; i <= n; i++) {
scanf("%d %d %d", &Y, &M, &D);
SS = Calu(Y)+Calu(M)+Calu(D);
while(SS >= 10)
SS = Calu(SS);
if(abs(SS-MM) < min)
min = abs(SS-MM), Idx = i;
}
printf("%d\n", Idx);
}
return 0;
}
內容 :
你們可能不明白,追求者太多其實也是很困擾的一件事,
尤其是在不知道該選誰比較好的時候。
這時候不妨參考一下所謂命中注定的緣份指數,
傳說每個人出生時都會帶著特別的命格,可以用"特別數"來簡單分類,
而特別數越相近即是跟自己越合得來的人。
把出生的年月日的每個數字相加,直到最後變成個位數,即得到自己的特別數。
比如說,1990年9月28日出生,特別數就是2
1 + 9 + 9 + 0 + 9 + 2 + 8 = 38
3 + 8 = 11
1 + 1 = 2
給你某個正妹和她的追求者們的生日,請你算算誰會是得到正妹青睞的幸運兒。
輸入說明
:
多組輸入以EOF作為結束
第一行有三個整數,代表正妹的出生年、月、日 (保證她還活在世上)
接著有一個整數n, 1<=n<=100,代表正妹有幾個追求者
接著有n行,每一行有三個整數,分別代表每一個追求者的出生年、月、日
(他們應該也都還活著)
輸出說明
:
輸出一個整數k
代表第k個追求者的特別數和正妹的最相近
若最相近的不只一個,輸出順序較前面的那一個,先到先贏
範例輸入 :
1990 9 28 1 1992 4 1 1991 10 15 2 1992 4 1 1992 3 2
範例輸出 :
1 1
提示
:
>////<
出處
:
(管理:VacationClub)
/**********************************************************************************/
/* Problem: a286 "難道這就是命中注定" from */
/* Language: C (579 Bytes) */
/* Result: AC(24ms, 296KB) judge by this@ZeroJudge */
/* Author: morris1028 at 2011-11-04 18:27:15 */
/**********************************************************************************/
#include<stdio.h>
#include<stdlib.h>
int Calu(int n) {
int sum = 0;
while(n) {
sum += n%10;
n /= 10;
}
return sum;
}
int main() {
int Y, M, D, n, i, MM, SS;
while(scanf("%d %d %d", &Y, &M, &D) == 3) {
MM = Calu(Y)+Calu(M)+Calu(D);
while(MM >= 10)
MM = Calu(MM);
scanf("%d", &n);
int Idx, min = 10;
for(i = 1; i <= n; i++) {
scanf("%d %d %d", &Y, &M, &D);
SS = Calu(Y)+Calu(M)+Calu(D);
while(SS >= 10)
SS = Calu(SS);
if(abs(SS-MM) < min)
min = abs(SS-MM), Idx = i;
}
printf("%d\n", Idx);
}
return 0;
}
上一篇:a275. 字串變變變
下一篇:a270. 爬樓梯有益身心健康