蓝桥杯 试题 历届试题 小数第n位

    科技2026-04-05  8

    题记 这道题涉及到带余除法: 要求a/b后面的小数,首先a对b求余,余数乘10再除b保留新的余数,除数就是第一个小数,新的余数乘10再除b得到第二位小数… 这道题这样做可以拿到部分分数,但是如果n特别大的话,n一个一个减小会特别慢,运行会超时,所以先一次减10快速逼近小数点后第n位。

    #include <iostream> using namespace std; typedef long long ll; int main() { ll a,b,n; cin>>a>>b>>n; a%=b; while(n-10>0){ a*=1e10; a%=b; n-=10; } for(int i=1;i<=n+2;i++){ a*=10; if(i>=n) cout<<a/b; a%=b; } return 0; }
    Processed: 0.013, SQL: 12