USACO 2.4 Fractions to Decimals (模拟)
2015-10-04 22:41
573 查看
#include <stdio.h> #define DEBUG 1 #define TESTCASES 9 #define MAX_DIGITS 100001 char decimal[MAX_DIGITS]; int lastRemainder[MAX_DIGITS]; char result[MAX_DIGITS]; int resultIndex; int main(){ #if DEBUG int testCase; for (testCase = 1; testCase <= TESTCASES; testCase++){ char inputFileName[20] = "inputX.txt"; inputFileName[5] = '1' + (testCase - 1); freopen(inputFileName, "r", stdin); printf("\n#%d\n", testCase); #endif int numerator, denominator; scanf("%d%d", &numerator, &denominator); int quotient = numerator / denominator; char tempStr[1000000]; int len = 0; do { tempStr[len++] = quotient % 10 + '0'; quotient /= 10; } while(quotient); for (resultIndex = 0; resultIndex < len; resultIndex++) result[resultIndex] = tempStr[len - 1 - resultIndex]; result[resultIndex++] = '.'; int digit; for (digit = 0; digit < MAX_DIGITS; digit++) lastRemainder[digit] = -1; int remainder = numerator % denominator; digit = 0; int i; while (1){ if (remainder == 0){ if (digit == 0) result[resultIndex++] = '0'; else{ for (i = 0; i < digit; i++) result[resultIndex++] = decimal[i]; } break; } if (lastRemainder[remainder] != -1){ int repeatDigit = lastRemainder[remainder]; for (i = 0; i < digit; i++){ if (i == repeatDigit) result[resultIndex++] = '('; result[resultIndex++] = decimal[i]; } result[resultIndex++] = ')'; break; } lastRemainder[remainder] = digit; //长除法 numerator = remainder * 10; decimal[digit] = numerator / denominator + '0'; remainder = numerator % denominator; digit++; } result[resultIndex++] = '\0'; for (i = 0; i < resultIndex; i += 76) printf("%.76s\n", &result[i]); #if DEBUG } #endif return 0; }
相关文章推荐
- Transformation 能将 Windows XP/Server 2003 操作系统,完美地模拟成 Windows Vista 的软件
- 用javascript和css模拟select的脚本
- PHP模拟asp.net的StringBuilder类实现方法
- javascript用层模拟可移动的小窗口
- 自编jQuery插件实现模拟alert和confirm
- PHP模拟asp中response类实现方法
- javascript 模拟点击广告
- JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
- php实现模拟post请求用法实例
- JavaScript实现MIPS乘法模拟的方法
- 模拟xcopy的函数
- JS模拟实现Select效果代码
- php模拟服务器实现autoindex效果的方法
- C# SendInput 模拟鼠标操作的实现方法
- PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
- JS模拟并美化的表单控件完整实例
- php模拟登陆的实现方法分析
- php模拟用户自动在qq空间发表文章的方法
- php 模拟 asp.net webFrom 按钮提交事件实例
- php模拟post提交数据的方法