分数化小数
Time Limit: 3000ms, Memory Limit: 10000KB , Accepted: 3592, Total Submissions: 8630
Description
输入正整数a、b、c,输出a/b的小数形式,精确到小数点后c位。其中a、b≤1000000,c≤100。注意:本题有数据陷进。
Input
输入正整数a、b、c,用空格隔开
Output
输出计算结果,小数点后c位
-
Sample Input
1 6 4
-
Sample Output
0.1667
答案如下:
#include<iostream>
using namespace std;
int main()
{
int k,d,i;
int a,b,c;
cin>>a>>b>>c;
cout<<a/b<<'.';/*输出整数部分和小数点*/
k=a;
for(i=0;i<c-1;i++)
{
/*机智地把余数放大十倍,使之除以b并取模*/
k=(k%b)*10;
cout<<k/b;
}
k=(k%b)*10;
d=(k%b)*10/b;
if(d>=5)//判断第c+1位小数是否大于等于5,if yes,第c位小数要进1
{
cout<<k/b+1<<endl;
}
else
{
cout<<k/b<<endl;
}
return 0;
}