zoukankan      html  css  js  c++  java
  • 求循环小数

    对于任意的真分数 N/M ( 0 < N < M ),均可以求出对应的小数。如果采用链表表示各个小数,对于循环节采用循环链表表示,则所有分数均可以表示为如下链表形式。

    此题需要提交所有代码,不能只提交子函数change。

    循环节

    输入: N M

    输出: 转换后的小数(不超过 50 )

    要求: 仅编写将分数转换为小数的函数 change( int n, int m, NODE * head ) 。

    /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
    
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct node
    {   int         data;
        struct node * next;
    } NODE;
    
    void output( NODE * );
    void change( int, int, NODE * );
    
    void output( NODE * head )
    {   int k=0;
    
        printf("0.");
        while ( head->next != NULL && k<50 )
        {   printf("%d", head->next->data );
            head = head->next;
            k ++;
        }
        printf("
    ");
    }
    
    void change(int n, int m, NODE * head)
    {
        int a = n, b[50] = {0}, i=0, j=0;
        NODE * tmp = NULL;
        NODE * p = NULL, *q = head;
        do
        {
            b[i++] = a *= 10;
            for (p = head->next, j=0; p!=NULL && j<i-1; p=p->next)
            {
                if (b[j++] == a)
                {
                    q->next = p;
                    return;
                }
            }
            tmp = (NODE *)malloc(sizeof(NODE));
            tmp->data = a / m;
            a %= m;
            q->next = tmp;
            q = tmp;
            q->next = NULL;
        }
        while (a && i<50);
    }
    
    int main()
    {   int n, m;
        NODE * head;
    
        scanf("%d%d", &n, &m);
        head = (NODE *)malloc( sizeof(NODE) );
        head->next = NULL;
        head->data = -1;
        change( n, m, head );
        output( head );
        return 0;
    }

      每位除法的余数作为判断循环的依据,必须被存储,而结构体NODE中没有该域,所以单独申请一个数组,遵照题意,输出长度不会超过50位,所以数组开到50即可。

      注意循环结束条件,避免数组越界。

  • 相关阅读:
    为了抓包某APP所做的尝试(to be continued)
    VirtualBox的使用的一些Tips 网络配置|硬盘扩充
    斜线和反斜线简要历史,为什么windows和unix采用不同的路径分隔符
    求出二维数组主对角线、次对角线以及周边元素之和
    C#计算两个时间的时间差,精确到年月日时分秒
    C#获取MP3,WMA信息
    C#窗体随意移动
    DEV GridControl小结
    DEV 皮肤的使用
    C#窗体阴影
  • 原文地址:https://www.cnblogs.com/weir007/p/5977702.html
Copyright © 2011-2022 走看看