使用C ++中的链接列表实现数学程序

时间:2015-06-28 17:53:03

标签: c++

以下是问题的具体细节。

创建一个算术程序,用于在链表节点中存储整数。每个节点将存储一个三位整数,后续节点将保存大于四位数的部分数字。

例如:2,101,453,788将由四个节点表示,第一个节点用零填充,结果为

002

101

453

788

你的程序需要重载算术运算符+和 -

输入程序的每个数字都应有自己的链表,算术结果应存储在结果链表中。算术运算的最终结果应输出到控制台,数字的每一部分都以其节点位置列出。

实施例

如果我们想要添加10,000和845,则输出结果为:

答案是

节点1 = 010

节点2 = 845

给予10,845

我很难理解我的意愿:   一个。用0表示左侧   湾将整数的大小限制为3位

我想你可以把这个作家称为块,我只是无法想象这个程序,而是正在朝着正确的方向寻找一些温和的推动。

我到目前为止:   一个。创建了一个主类,以整数的形式请求来自用户的输入   湾创建了一个结构来充当我的ListNode

#ifndef LISTNODE_H
#define LISTNODE_H

 #include "stdafx.h"

 struct ListNode
 {
   //the integer data for the node
   int data;

   //Pointers
   ListNode* nextPtr;
   ListNode* prevPtr;


    //Constructor
     ListNode(const int& the_data, ListNode* next_node_ptr = NULL, ListNode*   prev_node_ptr = NULL)
  {
     data = the_data;
     nextPtr = next_node_ptr;
     prevPtr = prev_node_ptr;
  }
};
#endif

我无法弄清楚如何修改我的结构以遵守3位数参数并用0来填充单位或双位输入的左侧。 我想将整数存储在结构内部的数组中,以便我可以使用索引来分隔数字,但后来我认为我必须进行大量的字符串操作才能将整数放入数组中。我接下来想到将输入作为字符串并计算字符以确定所需的节点数。 任何输入都会有所帮助,有时我发现很难退后一步看看大局。

1 个答案:

答案 0 :(得分:0)

我认为您需要对问题进行修改并提出更精确的查询。

据我所知,你正在寻找一种方法来划分长度> 3个数字到子部分,以便能够将它们存储在链表中。为此,划分每个nos。 1000,直到红利为0.类似的东西:

1000)999999(999   
     999000
     ------
     000999

将rem,999插入链表。

由于股息尚未为0,因此将rem再次划分为:

1000)999(0
       0
     ---
     999

现在,被除数是0所以你可以停止你的循环并转到下一个整数。希望这有帮助!