历届试题 小数第n位 蓝桥杯
2018-03-27 21:56
225 查看
问题描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。
如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式。
本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始的3位数。输入格式 一行三个整数:a b n,用空格分开。a是被除数,b是除数,n是所求的小数后位置(0<a,b,n<1000000000)输出格式 一行3位数字,表示:a除以b,小数后第n位开始的3位数字。样例输入1 8 1样例输出125样例输入1 8 3样例输出500样例输入282866 999000 6样例输出914
模拟一下除法过程问题就很容易理解了,下面的代码能解决问题,但是如果n过大会T
#include <iostream>
using namespace std;
int main()
{
long long i,a,b,t,n;
cin>>a>>b>>n;
a=a%b;
for(i=0;i<n+2;i++)
{
a*=10;
if(i>=n-1) cout<<a/b;
a%=b;
}
return 0;
} 此时可以加一个while快速逼近小数点后第n位的位置。#include <iostream>
using namespace std;
int main()
{
long long i,a,b,t,n;
cin>>a>>b>>n;
a=a%b;
while(n-10>0)
{
a*=1e10;
a%=b;
n-=10;
}
for(i=0;i<n+2;i++)
{
a*=10;
if(i>=n-1) cout<<a/b;
a%=b;
}
return 0;
}
如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式。
本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始的3位数。输入格式 一行三个整数:a b n,用空格分开。a是被除数,b是除数,n是所求的小数后位置(0<a,b,n<1000000000)输出格式 一行3位数字,表示:a除以b,小数后第n位开始的3位数字。样例输入1 8 1样例输出125样例输入1 8 3样例输出500样例输入282866 999000 6样例输出914
模拟一下除法过程问题就很容易理解了,下面的代码能解决问题,但是如果n过大会T
#include <iostream>
using namespace std;
int main()
{
long long i,a,b,t,n;
cin>>a>>b>>n;
a=a%b;
for(i=0;i<n+2;i++)
{
a*=10;
if(i>=n-1) cout<<a/b;
a%=b;
}
return 0;
} 此时可以加一个while快速逼近小数点后第n位的位置。#include <iostream>
using namespace std;
int main()
{
long long i,a,b,t,n;
cin>>a>>b>>n;
a=a%b;
while(n-10>0)
{
a*=1e10;
a%=b;
n-=10;
}
for(i=0;i<n+2;i++)
{
a*=10;
if(i>=n-1) cout<<a/b;
a%=b;
}
return 0;
}
相关文章推荐
- 历届试题 小数第n位 【C++】
- 历届试题 小数第n位
- 蓝桥杯历届试题——地宫取宝 (记忆化dp)
- 蓝桥杯 历届试题 神奇算式
- 蓝桥杯历届试题——兰顿蚂蚁
- 蓝桥杯 - 历届试题 兰顿蚂蚁 C语言实现
- 蓝桥杯 历届试题 九宫重排
- 蓝桥杯 历届试题 连号区间数
- 蓝桥杯 历届试题 数字游戏 部分超时
- 蓝桥杯 历届试题 剪邮票
- 蓝桥杯 历届试题 小朋友排队 树状数组 逆序数
- 蓝桥杯 历届试题 青蛙跳杯子
- 蓝桥杯 历届试题 危险系数
- 蓝桥杯 PREV-32 历届试题 分糖果 (java)
- 蓝桥杯 历届试题 打印十字图
- 蓝桥杯历届试题题解1
- 蓝桥杯 历届试题 剪格子
- 蓝桥杯历届试题-六角填数(12)
- 蓝桥杯 历届试题 日期问题
- 蓝桥杯 历届试题 李白打酒