UVa 332 - Rational Numbers from Repeating Fractions

来源:互联网 发布:淘宝输入口令抢流量 编辑:程序博客网 时间:2024/05/26 12:59

題目:已知一個分數的小數形式和循環節長度,求分數。

分析:數論。利用題目給的公式直接求解即可。

            處理過程中直接使用整數計算

            然後對分子分母計算約分即可。

說明:發現並沒有讀過多少書╮(╯▽╰)╭。

#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;}


0 0
原创粉丝点击