美文网首页程序程序员架构算法设计模式和编程理论
《算法竞赛入门经典第二版》习题2-5分数化小数问题

《算法竞赛入门经典第二版》习题2-5分数化小数问题

作者: Master郭 | 来源:发表于2017-01-23 21:13 被阅读288次

    这是大三阅读《算法竞赛入门经典第二版》时写的,当时是为了准备算法题:
    关于《算法竞赛入门经典第二版》习题2-5分数化小数问题,网络上有一些代码
    #include<stdio.h> int main(void) { int a, b, c; scanf("%d%d%d", &a, &b, &c); printf("%.*f\n", c, (double)a/b); return0; }
    我发现采用格式化输出的方法是不正确的,经过测试只能输出16位左右,超出会自动补0
    我采用模拟除法的过程,同时对最后一位四舍五入,代码如下:
    #include<iostream> using namespace std; int main() { int a,b,c,n,n1; while(scanf("%d",&a)&&scanf("%d",&b)&&scanf("%d",&c)&&(a||b||c)) { for(intcount=0;;count++) { if(count) if(count<=c) printf("%d",n); else { if(n1=a/b>=5) printf("%d",n+1); else printf("%d",n); break; } n=a/b; a=(a-n*b)*10; if(count==1) cout<<"."; } } return 0; }
    经过测试,这才是正确的解答
    程序运行结果如下:

    Paste_Image.png

    相关文章

      网友评论

      • c43e2ecac515:汝佳大神的书籍,搞acm竞赛的人手必备蛤~

      本文标题:《算法竞赛入门经典第二版》习题2-5分数化小数问题

      本文链接:https://www.haomeiwen.com/subject/proabttx.html