[ACM ] Q332 AC

看板C_and_CPP (C/C++)作者 (Pichu)時間16年前 (2009/09/22 15:00), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
/* ============================================================================ Name : Q332.c Author : Pichu Version : Copyright : Q332 Description : ============================================================================ */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #define SIZE 20 long long gcd(long long, long long); int main(void) { int counter = 1; int j,k; char x[SIZE]; /* scanf("%s%s",x,a); BigMinus(x,a,t); printf("%lld",(long long)atoi(t)); */ long long X,p,q; while(scanf("%d",&j)){ if(j== -1)break; scanf("%*[^.]%*[.]%s",x); k=strlen(x) - j; X=(long long)atoi(x); if(j){ p=X-floor(X/pow(10,j)); q=pow(10,k+j) - pow(10,k); }else{ p=X; q=pow(10,k); } if(p==0)printf("Case %d: 0/1\n",conuter); else{ long long gcdd=gcd(p,q); printf("Case %d: %lld/%lld\n",counter,p/gcdd,q/gcdd); } counter++; } return EXIT_SUCCESS; } long long gcd(long long b, long long a){ long long t; if(b==0||a==0)return -1; if(b>a){ t=b; b=a; a=t; } t=a%b; while(t!=0){ a=b; b=t; t=a%b; } return b; } 恩 我的作法是先讀入j 然後點後讀入x 之後帶入公式 GCD 輸出 可是就是WA... 另外 想問一下如果用大數運算會比較漂亮嗎? http://www.tcgs.tc.edu.tw/~sagit/luckycat/q332.htm http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=5&problem=268 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.182.94

09/22 23:04, , 1F
加個 p==0 的時候,印 printf("Case %d: 0/1\n",counter);
09/22 23:04, 1F
※ 編輯: pichubaby 來自: 140.117.182.94 (09/22 23:05) 謝謝 cutecpu大大 ※ 編輯: pichubaby 來自: 140.117.182.94 (09/22 23:29)
文章代碼(AID): #1Ak7O8oI (C_and_CPP)
文章代碼(AID): #1Ak7O8oI (C_and_CPP)