題目:已知一個分數的小數形式和循環節長度,求分數。
分析:數論。利用題目給的公式直接求解即可。
處理過程中直接使用整數計算
然後對分子分母計算約分即可。
說明:發現並沒有讀過多少書╮(╯▽╰)╭。
#include <cstdio>
int gcd(int a, int b)
{
return a%b?gcd(b, a%b):b;
}
int main()
{
int n, cases = 1;
char buf[1001];
while (~scanf("%d",&n) && n != -1) {
scanf("%s",buf);
int den = 1, num = 0;
for (int i = 2; buf[i]; ++ i) {
den *= 10;
num = num *10 + (buf[i]-'0')*1;
}
if (n) {
int temp = 1;
for (int i = 0; i < n; ++ i)
temp = temp*10;
num = num-num/temp;
den = den-den/temp;
}
int red = gcd(num, den);
printf("Case %d: %d/%d\n",cases ++,num/red,den/red);
}
return 0;
}