以下是问题的具体细节。
创建一个算术程序,用于在链表节点中存储整数。每个节点将存储一个三位整数,后续节点将保存大于四位数的部分数字。
例如: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来填充单位或双位输入的左侧。 我想将整数存储在结构内部的数组中,以便我可以使用索引来分隔数字,但后来我认为我必须进行大量的字符串操作才能将整数放入数组中。我接下来想到将输入作为字符串并计算字符以确定所需的节点数。 任何输入都会有所帮助,有时我发现很难退后一步看看大局。
答案 0 :(得分:0)
我认为您需要对问题进行修改并提出更精确的查询。
据我所知,你正在寻找一种方法来划分长度> 3个数字到子部分,以便能够将它们存储在链表中。为此,划分每个nos。 1000,直到红利为0.类似的东西:
1000)999999(999
999000
------
000999
将rem,999插入链表。
由于股息尚未为0,因此将rem再次划分为:
1000)999(0
0
---
999
现在,被除数是0所以你可以停止你的循环并转到下一个整数。希望这有帮助!