题记 这道题涉及到带余除法: 要求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;
}
转载请注明原文地址:https://blackberry.8miu.com/read-45435.html