首页 > 代码库 > N分之一 竖式除法模拟
N分之一 竖式除法模拟
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); } }
N分之一 竖式除法模拟
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。