NYOJ 330 一个简单的数学题
生活随笔
收集整理的這篇文章主要介紹了
NYOJ 330 一个简单的数学题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一個簡單的數學題
時間限制:3000?ms ?|? 內存限制:65535?KB 難度:3 描述直接模擬求余數的方法,用一個數組記錄商,另外一個數組記錄余數是否出現過,如果出現過,說明是第二次循環的開始,在此處跳出循環即可。
#include<cstdio> #include<cstring> const int MAXN = 100005; int a[MAXN], vis[MAXN]; int main() {int n, t, i;scanf("%d",&t);while(t--) {memset(vis, 0, sizeof(vis));scanf("%d",&n);if(n < 0) {printf("-");n = -n;}if(n == 1) printf("1\n");else {int s = 1, num = 0;vis[s] = 1;while(1) {s *= 10;a[num++] = s / n;s %= n;if(vis[s] || s == 0) break; //余數再次出現或者余數為0(即可以整除)vis[s] = 1;}printf("0.");for(i = 0; i < num; i++)printf("%d", a[i]);printf("\n");}}return 0; }
總結
以上是生活随笔為你收集整理的NYOJ 330 一个简单的数学题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文了解Redis持久化
- 下一篇: fail-fast机制(遍历的同时删除L