输入正整数a,b,c,输出a/b的小数形式, 精确到小数点后c位。a,b≤106,c≤100。输入包 含多组数据,结束标记为a=b=c=0。
样例输入:
164
000
样例输出:
Case 1: 0.1667
在单单使用double说明变量,用‘/’计算
当然是行不通的,于是要用别的方式来计算
除法得出的每一位小数都可以用余数乘以十除以除数得其商得到
例1/7=0.142857142857…
1%7=1 1*10/7=1
1*10%7=3 3*10/7=4
3*10%7=2 2*10/7=2
2*10%7=6 6*10/7=8
……
int main()
{
int a, b, c;
while (cin >> a >> b >> c)
{
if (a == b&&b == c &&c== 0)break;
cout << a / b << '.';// 输出整数和小数点
for (int i = 1; i < c; i++)//输出小数
{
cout << (a = a % b * 10) / b;
}
int last = (a = a % b) * 10 / b;
if ((a % b) * 10 / b >= 5)
last++;
cout << last << endl;
}
return 0;
}