請寫一個程式,輸入正整數n求若將 1 / 17 化為小數﹐則小數點後第n位數字為多少?及小數點後第1位至第n位的數字和為多少?
輸入說明 :
有m(1≤m≤5)組測試資料且1≤n≤170000,每組測試資料均為一行
接下來共有m行,每行有1個整數。
輸出說明 :
對於每一組測試資料,輸出一行2個數字(空格隔開),代表著這個第n位數字及小數點後第1位至第n位的其數字和。
範例輸入 :
2
3
5
範例輸出 :
8 13
2 23
出處 :
板橋高中2011能力競賽
程式碼:
#include<stdio.h> int main() { int i,m,n,dividend; int arr[170001]={0}; dividend = 1; for(i=1; i<170001; i++) { dividend *= 10; arr[i] = arr[i-1] + dividend/17; dividend %= 17; } scanf("%d",&m); for(i=0; i<m; i++) { scanf("%d",&n); printf("%d %d\n",arr[n]-arr[n-1],arr[n]); } return 0; }
http://zerojudge.tw/ShowProblem?problemid=a240
不好意思,能夠請您講解一下這段
回覆刪除dividend = 1;
for(i=1; i<170001; i++)
{
dividend *= 10;
arr[i] = arr[i-1] + dividend/17;
dividend %= 17;
}
程式碼嗎?
喔!
回覆刪除我看懂了,這個真是厲害......
看了您的網誌後我一天比一天進步呢!
真是非常感謝!