题目链接:
http://oj.jzxx.net/problem.php?id=1580
题面:
题意:
输入一个a,b,n,我们要计算a/b精确到第n位。题意非常简单。
思路:
因为单单使用double型的精度肯定是远远不够的,我们就需要使用字符串来模拟除法的运算,我们知道我们手计算除法时,是将余数不断乘10再对分母继续相除,再余数乘10,对分母继续相除,所以我们可以通过for循环来实现对位数的控制,利用字符串来存储小数位。然后这道题目就可以AC了。
参考代码:
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int a
,b
,n
,s
,i
;
char c
[201]= {0};
scanf("%d %d %d", &a
, &b
, &n
);
s
= a
/ b
;
a
= a
% b
;
for( i
= 0; i
< n
; i
++)
{
a
*=10;
c
[i
] =( a
/ b
) +'0';
a
%=b
;
}
printf("%d.%s",s
,c
);
return 0;
}