分数a/b化为小数后,小数点后第n位的数字是多少?
三个正整数a,b,n,相邻两个数之间用单个空格隔开。0<a<b<100,1≤n≤10000。
一个数字。
1 2 1
5
double在6位小数以后 数据不一定准确 导致余数过多时会产生误差
#include <iostream> #include <cmath> using namespace std; int main() { double a ,b ,c ; int s; // 后用于取整数部分 cin >> a >> b >> c; s= a/b*pow(10,c); //第n位小数化为整数最后一位 舍去小数位 cout << s%10 ; // 取出最后一位 }这种方法0误差 被除数 除数 都定义为整形 运用除法规则一步一步进行 一位一位求出小数
#include <iostream> using namespace std; int main() { int a,b,n,i; //都为整数 cin >> a >> b >> n; //被除数 除数 小数第n位 for(i=1;i<=n;i++) //循环n次 { a%=b; //运用除法规则 一步一步进行 a*=10; //不够除 补一位0继续除 } a/=b; //第n次循环后 输出a/b的整数部分 cout <<a; }