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);

    }
}
时间: 2024-11-02 23:54:13

N分之一 竖式除法模拟的相关文章

UVA-12333 Revenge of Fibonacci(竖式加法模拟 &amp; 字典树)

题目: 给出一个斐波那契数字的前缀,问第一个有这个前缀的数字在斐波那契数列中是第几个. 思路: 紫书提示:本题有一定效率要求.如果高精度代码比较慢,可能会超时. 利用滚动数组和竖式加法来模拟斐波那契相加的过程,在这个过程中每得出一个斐波那契数字就用字典树存一下. PS:在滚动数组中存的斐波那契数字是逆序存储的. 代码: #include <bits/stdc++.h> #define inf 0x3f3f3f3f #define MAX 1e9; #define FRE() freopen(&

除法竖式

被除数:  除 数: 除法竖式,布布扣,bubuko.com

数学竖式排版中不为人知的技巧

在使用mathtype的过程中,难免会遇到一些不知道怎么操作的情况,这个时候我们就需要去找一些教程来学习一下.数学数式一般涉及到三种类型,即算术“加.减.乘.除”的竖式,代数多式加法.乘法.除法的排法,开平方竖式的排法.本教程将介绍数学竖式排版的一些技巧. (1)算术“加.减.乘.除”的竖式,其整数.小数位一般在4位以内,数码与数码之间一律疏排,2位数空对开,3位.4位数空三分.数式一般用三号.四号或小四号的正体数码字排版.乘法和除法竖式均为多层重叠.如下图所示: (2)代数多项式加法.乘法.除

大数运算——字符串操作结合“竖式计算“思想的实现

总体原则: 字符串转整形数组,然后按照“竖式计算”的思想,按位(对于数组来说,就是对应位置的元素)进行运算,同时处理进位.退位.最后将整形数组转换为字符串输出. Ps:1.字符串转整形,本文采取逆序存储的方式,即将字符串的低位(大数的高位)放置到整形数组的高位. 2.本文提供的四个四则运算方法,所有的输入值(大数)必须为正整数. 一.加法 加法运算遵循从低位到高位运算的法则.将字符串转换为整形数组后,两数组对应元素相加,结果存储至结果数组的相应元素位置.同时对相加后的元素进行整除和取余运算(整除

竖式问题——巧用字符数组

竖式问题 题目: 找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合.输入数字集合(相邻数字之间没有空格),输出所有竖式.每个竖式前应有编号,之后应有一个空行.最后输出解的总数.具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但你的程序应该输出空格,而非小数点).   样例输入: 2357 样例输出: <1> ..775 X..33 ----- .2325 2325. ----- 25575 The number of sol

竖式回转窑预热器由哪些构造构成

1.预热器本体:它是确保物料预热到900摄氏度摆布的最重要有些,它是由预热室.悬挂设备及耐火砖衬(该项不属于设备设计制作范围)等有些构成.该有些的构造大有些是金属构件,有些资料根据需要选用了耐热钢,耐热钢能在1000~1100摄氏度高温下作业.另外,耐火砖衬构造设计新颖.密封性好,能确保物料在预热器内均匀预热并到达预热温度. 2.推料设备:首要包含推头.结构和连杆等有些,推头选用耐热钢锻造或焊接而成,能接受高温,凭借电控和液压体系,各个液压推杆能按主动控制程序完成依次推料. 3.(回转窑设备)上

竖式乘法

Time Limit: 4000/2000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 小晴天是ACdream团队中最牛的老师之一,他最擅长数学运算~这天他翻开一本<AC is not a dream>杂志,发现最后一页有一道很经典的思维题,题目很简单,每个框填写一个数字,构成一个竖式,每个数的最高位不能为0,但是有一些数字被隐藏掉了,然后让你根据

【算法学习笔记】35.高精度 竖式乘法 SJTU OJ 1274

Description 输入a,b 输出a*b的竖式乘法,格式见样例. Sample Input1 11 9 Sample Output1 11 9 -- 99 Sample Input2 10 10 Sample Output2 10 10 --- 100 Sample Input3 101 101 Sample Output3 101 101 ----- 101 101 ----- 10201 Sample Input4 10086 2 Sample Output4 2 10086 ----

[ACDream]小晴天老师系列——竖式乘法

直接上题目: 小晴天老师系列——竖式乘法 Time Limit: 4000/2000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 小晴天是ACdream团队中最牛的老师之一,他最擅长数学运算~这天他翻开一本<AC is not a dream>杂志,发现最后一页有一道很经典的思维题,题目很简单,每个框填写一个数字,构成一个竖式,每个数的最高位不能为