程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> ACM-簡單題之Just a Numble——hdu2117

ACM-簡單題之Just a Numble——hdu2117

編輯:C++入門知識

Just a Numble
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2106 Accepted Submission(s): 986

Problem Description
Now give you two integers n m, you just tell me the m-th number after radix point in 1/n,for example n=4,the first numble after point is 2,the second is 5,and all 0 followed

Input
Each line of input will contain a pair of integers for n and m(1<=n<=10^7,1<=m<=10^5)

Output
For each line of input, your program should print a numble on a line,according to the above rules

Sample Input
4 2
5 7
123 123

Sample Output
5
0

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 
#include 
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<


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved