2.求循环小数

news2024/12/25 8:58:31

题目

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

输入: N M

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

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


C完整代码

#include <stdio.h>  
#include <stdlib.h>  

typedef struct node
{
    int data;
    struct node* next;
} NODE;

void change(int n, int m, NODE* head)
{
    NODE* current = head;  // 当前节点指针,初始指向头节点

    for (int i = 1; i <= 50; i++)  // 循环50次,最多插入50个节点
    {
        if (n == 0)  // 如果被除数为0,则退出循环
        {
            break;
        }
        else
        {
            n = n * 10;  // 将被除数乘以10,以便获取下一个商
            int quotient = n / m;  // 计算商
            n = n % m;  // 计算余数

            NODE* newNode = (NODE*)malloc(sizeof(NODE));  // 创建新节点
            newNode->data = quotient;  // 将商存储在新节点的数据域中
            current->next = newNode;  // 将新节点连接到当前节点的后面
            current = newNode;  // 将当前节点指针移动到新节点
        }
    }
    current->next = NULL;  // 将最后一个节点的next指针置为NULL,表示链表结束
}


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("\n");
}

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

    // 释放动态分配的内存空间
    NODE* current = head;
    while (current != NULL) {
        NODE* temp = current;
        current = current->next;
        free(temp);
    }

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1022010.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

内容创作者如何下载头条号西瓜视频的视频

如果你是一位科技博客作者或是视频创作专家&#xff0c;我相信你必然会遇到这样的问题&#xff1a; 如何将头条号的西瓜视频的视频下载下来&#xff1f; 对于这个问题&#xff0c;其实并不存在所谓的标准答案&#xff0c;因为头条号和西瓜视频并没有提供官方支持的下载方式。…

文件外发流程如何设置,才能进行事前事中事后管控呢?

随着信息技术的快速发展&#xff0c;企业内部数据的安全性成为业务运行过程中的关键问题之一。尤其是对于那些包含商业秘密、客户数据以及机密文件等敏感信息的企业而言&#xff0c;文件的外发往往会导致严重的商业损失和声誉损害。根据IBM的数据报告&#xff0c;2022年全球数据…

【二叉搜索树】将二叉搜索树变平衡-力扣 1382 题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

一文解析 Python 读取配置文件的常用方法!

在程序运行使用当中&#xff0c;尤其是框架设计中&#xff0c;配置文件是必不可少的&#xff0c;配置文件的存在能够放置参数或者选项设置&#xff0c;使得程序更加灵活可用&#xff0c;下面就来介绍 Python 读取配置文件的常用方法。 常用的配置文件种类有很多&#xff0c;甚至…

【Nginx27】Nginx学习:代理模块(一)基本配置与概念

Nginx学习&#xff1a;代理模块&#xff08;一&#xff09;基本配置与概念 来了来了它来了。要说 Nginx 最早最出名的名头是什么&#xff1f;相信不少老码农马上就会想到&#xff0c;最开始&#xff0c;Nginx 的名头就是一款性能最高的 反向代理 服务器。现在其实也是&#xff…

Harmony 开始支持 Flutter ,聊聊 Harmony 和 Flutter 之间的因果

相信大家都已经听说过&#xff0c;明年的 Harmony Next 版本将正式剥离 AOSP 支持 &#xff0c;基于这个话题我已经做过一期问题汇总 &#xff0c;当时在现有 App 如何兼容 Harmony Next 问题上提到过&#xff1a; 华为内部也主导适配目前的主流跨平台方案&#xff0c;主动提供…

听GPT 讲Istio源代码--pilot(7)

File: istio/pilot/pkg/model/log.go 在Istio项目中&#xff0c;istio/pilot/pkg/model/log.go文件的作用是定义了Istio Pilot的日志记录功能。 该文件中定义了一个名为log的全局日志记录器&#xff0c;并且还定义了一些与日志记录相关的变量&#xff0c;如verbose、verboseCou…

Linux高性能服务器编程 学习笔记 第三章 TCP协议详解

与IP协议相比&#xff0c;TCP协议更靠近应用层&#xff0c;因此在应用程序中有更强的可操作性。一些重要的socket选项都和TCP协议相关。 本章从以下方面讨论TCP协议&#xff1a; 1.TCP头部信息。TCP头部信息出现在每个TCP报文段中&#xff0c;用于指定通信的源端端口号、目的端…

气传导与入耳式传导区别?气传导耳机好用吗?

​入耳式耳机隔音效果好&#xff0c;但佩戴舒适性差&#xff0c;音质更偏向沉浸式。相比传统入耳式耳机&#xff0c;气传导耳机可以提供开放的听觉体验&#xff0c;音质更加自然真实&#xff0c;同时避免了长时间佩戴耳机可能会带来的不适感。以下是我总结了最好用的几款气传导…

使用RTMDet模型训练DOTA_v1.0教程

1. 环境配置 需要注意&#xff0c;如果之前安装过mmrotate&#xff0c;那么这个mmyolo请单独创建一个虚拟环境&#xff0c;因为mmyolo和mmrotate的最新版本不兼容。 1.创建环境 conda create -n mmyolo python3.82.安装依赖 # 进入mmyolo环境中 conda activate mmyolo# 安装…

Oracle两个日期都存在返回最小/最大的,如果只存在一个就返回存在的日期

Oracle函数 Oracle两个字段日期都存在返回最小的&#xff0c;如果只存在一个就返回存在的日期. 函数说明LEAST(value1, value2, …)最小值GREATEST(value1, value2, …)最大值COALESCE(value1, value2, …)返回第一个不是空值的参数

计算机网络与技术——物理层

&#x1f60a;计算机网络与技术——物理层 &#x1f47b;物理层的基本概念&#x1f47b;数据通信基础知识&#x1f6a2;数据通信系统的模型&#x1f6a2;信道的基本概念&#x1f6a2;信道的极限容量 &#x1f47b;物理层下面的传输媒体&#x1f50a;导引型传输媒体&#x1f50a…

006-第一代光电小工具(二)

第一代光电小工具(二) 文章目录 第一代光电小工具(二)项目介绍串口QCustomPlot 部分开启OpenGl更新曲线 总结一下 关键字&#xff1a; Qt、 Qml、 QCustomPlot、 串口、 QSerialPort 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;…

Ubuntu系统下载及安装教程

史上最全最新Ubuntu安装教程&#xff08;图文&#xff09; - 知乎 (说明&#xff1a;本教程介绍的是安装DeskTop版的系统) 1.官网下载镜像 官方网址: https://ubuntu.com/#download进入官网后会有最新版本的镜像下载地址&#xff0c;如果需要下载最新版本&#xff0c;直接点…

2023-09-18 LeetCode每日一题(打家劫舍 III)

2023-09-18每日一题 一、题目编号 337. 打家劫舍 III二、题目链接 点击跳转到题目位置 三、题目描述 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口&#xff0c;我们称之为 root 。 除了 root 之外&#xff0c;每栋房子有且只有一个“父“房子与之相连。一番侦…

【C++】构造函数初始化列表 ③ ( 构造函数 的 初始化列表 中 为 const 成员变量初始化 )

文章目录 一、构造函数 的 初始化列表 中 为 const 成员变量初始化1、初始化 const 常量成员2、错误代码示例 - 没有初始化常量成员3、正确代码示例 - 在初始化列表中初始化常量成员4、完整代码示例 构造函数初始化列表 总结 : 初始化列表 可以 为 类的 成员变量 提供初始值 ;…

TCP IP网络编程(六) 基于UDP的服务器端、客户端

文章目录 一、理解UDP1.UDP套接字的特点2.UDP内部工作原理3.UDP的高效使用 二、实现基于UDP的服务器端、客户端1.UDP中的服务端和客户端没有连接2.UDP服务器端和客户端均只需要一个套接字3.基于UDP的数据I/O函数4.基于UDP的回声服务器端、客户端5.UDP客户端套接字的地址分配 三…

【Java】java: 无效的标记: -parameters

问题描述 maven項目&#xff0c;原来使用jdk8的版本&#xff0c;现在改成jdk7的版本&#xff0c;结果报错&#xff1a; java: 无效的标记: -parameters 原因分析 解决方法 删掉下图所示的-parameters参数 参考文章 https://www.cnblogs.com/lovezzb/p/10072854.html

英伟达 nvidia 官方code llama在线使用

新一代编程语言模型Code Llama面世&#xff1a;重新定义编程的未来 随着人工智能和机器学习技术的迅速发展&#xff0c;我们现在迎来了一款革命性的大型编程语言模型——Code Llama。该模型是基于Llama 2研发的&#xff0c;为开放模型中的佼佼者&#xff0c;其性能达到了行业领…

零基础学前端(四)1. 重点讲解 CSS:盒子模型、样式选择器

1. 该篇适用于从零基础学习前端的小白 2. 初学者不懂代码得含义也要坚持模仿逐行敲代码&#xff0c;以身体感悟带动头脑去理解新知识 3. 初学者切忌&#xff0c;不要眼花缭乱&#xff0c;不要四处找其它文档&#xff0c;要坚定一个教授者的方式&#xff0c;将其学通透&#xff…