《算法竞赛入门经典》(第2版)——习题2-5 分数化小数(decimal)
程序员文章站
2024-03-18 23:13:16
...
本题的难点在于精确到小数点后c位,按照手算的方法可以解决这个题目,具体代码如下,需要注意的地方已经写了注释。
#include<stdio.h>
int main(){
int a,b,c,t,kase=0;
while(3==scanf("%d %d %d",&a,&b,&c)){
if(a==0&&b==0&&c==0)
break;
else {
printf("Case %d:%d.",++kase,a/b);//先把整数部分和小数点输出
a%=b;
while(c--){
a*=10;
t=a/b;
if(c==0&&(a%b)*10/b>=5) t++;//来判断c+1位,进而进行四舍五入
printf("%d",t);//挨个输出小数部分
a%=b;
}
printf("\n");
}
}
return 0;
}
搜集了很多代码,最后觉得还是这个代码最为简洁,而且,它还不止能输出小数点100位,1000位甚至更多也可以输出,感兴趣的话,可以验证一下。
下一篇: 例题6-2 UVa514-Rails