N分之一
Description
Alice越来越痴迷于数学问题了。一天,爸爸出了个数学题想难倒她,让她求1 / n。
可怜的Alice只有一岁零九个月,回答不上来 ~~~~(>_<)~~~~ 于是她求你编个程序帮她算出来。
Input
第一行是一个整数T,表示测试组数。接下来T行,每行一个整数 n ( 1 ≤ |n| ≤ 105 )。
Output
以实数形式输出1/n 。如果是无限循环小数的,只需输出第一个循环节。
Sample Input
4
2
3
7
168
Sample Output
0.5
0.3
0.142857
0.005952380
注意一点 如果被除数在之前出现过的话 那么接下来出现的就是循环节
#include<bits/stdc++.h> int main() { int n; bool vis[100000]; int t; scanf("%d", &t); while(t--) { scanf("%d", &n); if(n == 1) { printf("1\n"); continue; } else if(n == -1) { printf("-1\n"); continue; } memset(vis,0,sizeof(vis)); if(n < 0) { n = -n; printf("-"); } printf("0."); int x,k =1; int ans[10000]; int cnt = 0; vis[k] = 1; while(k) { k *= 10; ans[cnt++] = k/n; k %= n; //printf("---------%d\n",k); if(vis[k]) { break; } vis[k] = true; } for(int i = 0; i < cnt; i++) printf("%d", ans[i]); printf("\n"); //printf("%d\n",k); } }
时间: 2024-11-02 23:54:13