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