目錄
解釋
範例
首頁 後端開發 C++ 將一個以鍊錶表示的數字加1

將一個以鍊錶表示的數字加1

Aug 29, 2023 pm 09:17 PM
數位 鍊錶

將一個以鍊錶表示的數字加1

數字的鍊錶表示是這樣提供的:鍊錶的所有節點都被視為數字的一位數字。節點儲存數字,使得鍊錶的第一個元素保存數字的最高有效位,鍊錶的最後一個元素保存數字的最低有效位。例如,數字 202345 在鍊錶中表示為 (2->0->2->3->4->5)。

要為這個表示數字的鍊錶加 1,我們必須檢查清單中最低有效位的值。如果小於 9 就可以了,否則程式碼將更改下一個數字,依此類推。

現在讓我們看一個範例來了解如何做到這一點,1999 表示為(1-> 9- > 9 -> 9) 並添加1 應該將其更改為(2->0-> 0->0)

Input:1999
Output:2000
登入後複製

解釋

將給定的鍊錶表示的數字加1,意味著需要按照以下步驟進行操作:

  • 反轉鍊錶:需要將鍊錶反轉,即將最後一個數字變成第一個,第一個變成最後一個。例如,1-> 9-> 9 -> 9 轉換為 9-> 9 -> 9 ->1。
  • 對於這個反轉後的鍊錶,遍歷鍊錶,在最左邊的節點上加1。如果該節點的值等於9,則將進位傳遞到下一個節點。重複這個過程,直到沒有進位。
  • 將字串還原為原始形式,然後傳回頭節點以列印字串。

範例

#include <iostream>
using namespace std;
//n=next node ; d=data ; p= previous node; h=head node; c=current node
class Node {
   public:
      int d;
      Node* n;
};
Node *newNode(int d) {
   Node *new_node = new Node;
   new_node->d = d;
   new_node->n = NULL;
   return new_node;
}
Node *reverse(Node *h) {
   Node * p = NULL;
   Node * c = h;
   Node * n;
   while (c != NULL) {
      n = c->n;
      c->n = p;
      p = c;
      c = n;
   }
   return p;
}
Node *addOneUtil(Node *h) {
   Node* res = h;
   Node *temp, *p = NULL;
   int carry = 1, sum;
   while (h != NULL) {
      sum = carry + h->d;
      carry = (sum >= 10)? 1 : 0;
      sum = sum % 10;
      h->d = sum;
      temp = h;
      h = h->n;
   }
   if (carry > 0)
      temp->n = newNode(carry);
   return res;
}
Node* addOne(Node *h) {
   h = reverse(h);
   h = addOneUtil(h);
   return reverse(h);
}
int main() {
   Node *h = newNode(1);
   h->n = newNode(9);
   h->n->n = newNode(9);
   h->n->n->n = newNode(9);
   h = addOne(h);
   while (h != NULL) {
      cout << h->d;
      h = h->n;
   }
   cout<<endl;
   return 0;
}
登入後複製

以上是將一個以鍊錶表示的數字加1的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

C++程式將一個數字四捨五入到n位小數 C++程式將一個數字四捨五入到n位小數 Sep 12, 2023 pm 05:13 PM

在任何語言中編寫程式時,將數字表示為輸出是一項有趣且重要的任務。對於整數類型(short、long或medium類型的資料),很容易將數字表示為輸出。對於浮點數(float或double類型),有時我們需要將其四捨五入到特定的小數位數。例如,如果我們想將52.24568表示為三位小數,需要進行一些預處理。在本文中,我們將介紹幾種技術,透過四捨五入將浮點數表示為特定的小數位數。在不同的方法中,使用類似C的格式化字串、使用精度參數以及使用數學函式庫中的round()函數是很重要的。讓我們逐一來看。帶有

地下城與勇士起源狂戰士怎麼加點 地下城與勇士起源狂戰士怎麼加點 Mar 17, 2024 am 08:13 AM

地下城與勇士起源狂戰士怎麼加點,狂戰士屬於遊戲中的一個混傷職業,在遊戲中你會面臨力量和物理屬性的抉擇,優先加哪個是收益更高的呢,有關於武器的設置有什麼要注意的,以下就為大家帶來地下城與勇士起源狂戰士屬性加點優先權一覽。地下城與勇士起源狂戰士屬性加點優先級一覽1、狂戰士屬性加點優先級:物理攻擊力;力量;光屬性強化;全屬性強化;物理暴擊率;物理暴擊傷害;攻擊/技能釋放速度;移動速度;體力;精神。 2.狂戰士是綜合固定傷害和百分比傷害的職業,其中主要依靠物理攻擊、力量和獨立攻擊力。 3.物理攻擊會影響固

找出在範圍內不可被任何數整除的數字,使用C++ 找出在範圍內不可被任何數整除的數字,使用C++ Sep 13, 2023 pm 09:21 PM

在本文中,我們將討論查找1到n(給定)之間的數字的問題,這些數字不能被2到10之間的任何數字整除。讓我們透過一些例子來理解這一點-Input:num=14Output:3Explanation:Therearethreenumbers,1,11,and13,whicharenotdivisible.Input:num=21Output:5Explanation:Therearefivenumbers1,11,13,17,and19,whicharen的解題方法簡單方法如果

使用遞歸方法在C++中找到鍊錶倒數第n個節點 使用遞歸方法在C++中找到鍊錶倒數第n個節點 Sep 15, 2023 pm 05:53 PM

給定一個單鍊錶和正整數N作為輸入。目標是使用遞歸找到給定列表中從末尾算起的第N個節點。如果輸入清單有節點a→b→c→d→e→f且N為4,那麼倒數第4個節點將會是c。我們將首先遍歷直到列表中的最後一個節點以及從遞歸(回溯)增量計數返回。當count等於N時,則傳回指向目前節點的指標作為結果。讓我們來看看此的各種輸入輸出場景-輸入-List:-1→5→7→12→2→96→33N=3輸出−倒數第N個節點為:2解釋−第三個節點是2 。輸入−列表:-12→53→8→19→20→96→33N=8輸出-節點不存

真我 GT Neo6 定檔 5 月 9 日!機圈首場 AI 數位人發表會 真我 GT Neo6 定檔 5 月 9 日!機圈首場 AI 數位人發表會 May 08, 2024 pm 12:49 PM

5月7日,我手機廠商正式宣布,本公司GTNeo6發表會定檔5月9日。我GTNoe6被定位為"性能風暴",旨在攪動中端機風雲。除此之外,該發表會也將是手機圈首場AI數位人發表會。屆時,真我realme副總裁、全球行銷總裁、中國區總裁徐起將以數位人的形式出現在發表會上。數位人徐起根據官方介紹,真我GTNoe6代號為"颶風",更快更強,將挑戰最強第三代驍龍8s旗艦,挑戰同檔最強產品力。日前,真我GTNeo6被發現直接在電商平台上架,部分核心配置曝光,顯示該機不僅搭載了驍龍8s處理器,還支援120W閃充

Java程序,用來檢查一個數字是否可以被5整除 Java程序,用來檢查一個數字是否可以被5整除 Sep 13, 2023 pm 09:01 PM

在數學中,5的整除規則規定,如果數字以0或5結尾,則它可以被5整除。還有另一種方法來決定5的整除規則,如果餘數為0,則傳回該數字能被5整除。 mod(%)運算子通常在程式設計中用於整除。讓我們舉一個例子。給定的數字是525,數字以5結尾,可以被5整除。給定的數字是7050,數字以0結尾,並且可以被5整除。給定的數字是678,數字不以0和5結尾,不能被5整除。在本文中,我們將解決該數字是否能被5整除的問題。演算法以下步驟是我們將使用java.util.*套件來取得原始資料類型的使用者輸入。從主類

Golang中怎麼把字串轉換為數字 Golang中怎麼把字串轉換為數字 Jan 16, 2024 am 08:20 AM

Golang中如何將字串轉換為數字在Golang中,我們經常需要將字串轉換為數字來進行一些計算操作。字串轉換為數字的過程相對簡單,主要依賴Golang標準庫中的strconv套件。本文將詳細介紹如何使用strconv套件將字串轉換為數字,並給出一些具體的程式碼範例。將字串轉換為整數要將字串轉換為整數,可以使用strconv套件中的Atoi函數。 Ato

微信角標數字怎麼恢復 微信角標數字怎麼恢復 Nov 29, 2023 pm 05:46 PM

恢復微信角標數字的方法:1、強制退出微信,重新啟動;2、清除微信快取;3、檢查微信版本更新;4、卸載並重新安裝微信。詳細介紹:1、強制退出微信,重新啟動,這是最常見的解決微信角標數字異常的方法,在微信介面中,點擊左下角的「我」按鈕,再點擊右上角的「設定」按鈕,打開設定介面,在設定介面中,選擇“退出登入”,退出微信,等待幾秒鐘後,再次啟動微信,通常情況下角標數字就會恢復正常等等。

See all articles