6441. 特别的除法

输入正整数 a,b,c,输出 a/b 小数形式,精确到小数点后 c 位。

输入格式

共一行,包含三个整数 a,b,c。

输出格式

一个实数,表示结果。

数据范围

1≤a,b≤108,

2≤c≤1000

输入样例:
复制代码
2 3 6
输出样例:
复制代码
0.666667

cpp 复制代码
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
int main()
{

    //不能直接用double+printf,double精度不够
//    double a,b,c;
//    cin>>a>>b>>c;
//    double ans=a/b;
//    printf("%.8f\n",ans);
//    int c=8;printf("%.*f",c,ans);//同上效果
//    printf("%8d",123);//占8位右对齐
//    printf("%-8d",123);//左对齐
//    printf("%10.2f",3.14);//10位,小数点后两位


    ll a,b,c;
    cin>>a>>b>>c;
    ll ans1=a/b;
    ll r=a%b;//像列竖式一样余数*10再÷不断往后算小数点后位数
    string s;

    for(int i=0;i<=c;i++)
    {
        r*=10;
        s+=char(r/b+48);//一位一位往后算。char()是按ASCII码转换的。char(48)是'0'。
        r%=b;
    }

    //四舍五入
    if(s[c]>='5')
    {
        int i=c-1;
        while(i>=0&&s[i]=='9')
        {
            s[i]='0';
            i--;
        }
        if(i>=0) s[i]++;//算是可以用ASCII码来理解吧
        else ans1++;
    }

    cout<<ans1<<".";
    for(int i=0;i<c;i++)
        cout<<s[i];
    cout<<endl;

    return 0;
}
相关推荐
小郎君6583 分钟前
Vue 多标签页的加载态设计:为什么我没有用 Suspense 实现 PageLoading
vue.js·算法
JJJennie77733 分钟前
MAI Gateway私有化部署全攻略:大模型网关如何接入?附架构图
算法·gateway·ai网关·魔芋ai
東隅已逝,桑榆非晚40 分钟前
算法3.双指针法-快乐数
c++·笔记·学习·算法
专注仿真1 小时前
卷积神经网络(CNN)算法详解
人工智能·python·算法·代码·大模型训练
FII工业富联科技服务1 小时前
多智能体如何进入制造现场?从业务协同到数字孪生验证
大数据·人工智能·算法·机器人·制造·数字孪生
≮傷£≯√1 小时前
httpserver_QNetWorkClient
算法
Evand J1 小时前
【PMSM例程11】永磁同步电机(PMSM)基于UKF的转速与转子位置估计。附下载链接
算法·matlab·卡尔曼滤波·永磁同步电机·ukf·pmsm·位置估计
货拉拉技术1 小时前
记忆即智能:重构对话式AI Agent认知基座的四层渐进式记忆与自进化系统
人工智能·算法
eggwyw1 小时前
C++相交链表和反转链表详解
开发语言·c++
杜 硕1 小时前
从零开始的C++生活——第六讲——02
c++·算法·生活