8
这道题,怎么说呢,第一次看,有点吓到啊,
被m,n范围,
又是一道大数题了么。。o(╯□╰)o
好讨厌的说。。。
算一算怎么解呢?后来发现,就模拟除法运算,很简单就算出来了。
比如当n=4, 首先判断1%4==0 不相等,
按照除法规则就需要 将余数乘以10 再判断,而余数1乘以10 再除以4得到的便是小数点后第一个数,
再判断余数1乘以10以后的数与4取余是否等于0,不等就再次循环。
啊,还要注意碰到无限循环小数,你就悲剧了,所以,要利用m,
题目求第m个位置,我们就算到第m个位置结束,break就OK了,
嘿嘿,又AC一道题啦O(∩_∩)O~
//just a numble
#include <iostream>
#include <string.h>
using namespace std;
int arr[100001];
void set_arr(int n,int m)
{
memset(arr,0,sizeof(arr));
int i,j,k;
i=k=1;
while((k=k%n)!=0)
{
k*=10;
arr[i]=k/n;
++i;
// 如果i大于m,不管是有限小数还是无限的,全跳出来
if(i>m) break;
}
return;
}
int main()
{
int n,m;
int i,j,len;
while(cin>>n>>m)
{
set_arr(n,m);
cout<<arr[m]<<endl;
}
return 0;
}
ACM-简单题之Just a Numble——hdu2117,布布扣,bubuko.com
ACM-简单题之Just a Numble——hdu2117
原文:http://blog.csdn.net/lttree/article/details/20840189