C說話是一門功能壯大的專業化編程說話,普遍應用于各個行業。在這里我將分享一下若何在反轉數字時忽略前導零的方式。
先確定相關策略息爭決法子,然后打開編纂器起頭編寫法式。我一般利用Vim編纂器。在反轉數字的時辰,有時末從頭至尾的數字會有0,在反轉后,不該當將它們保留。
末從頭至尾為零時,可以操縱除法和求模運算的特征來處置。在這里,求模運算可以理解為求余數。在整型的運算中,會忽略小數部門。好比,一個三位數反轉可以如許操作:
先操縱求模運算,求10的余數,就可以獲得個位的數字。然后操縱除法,每次除以10,商就是原數字去失落個位的部門,再操縱求模運算,依次如許就可以取得列位數字。
因為末從頭至尾會有零,還得進一步處置,這里可以操縱0的性質,它與任何數相乘都為零。上一個步調中取得了列位數字,以三位數為例,這里可以如許構成反轉數字:
反轉數字=原個位數字x100+原十位數字x10+原百位數字
也就是說,從首位到個位數,依次從1到10的總位數次冪相乘,然后再相加,就是反轉后的數字。
下圖中的代碼中“tmp”指原數字,“pow”指的就是10的次冪,好比1、10、100……
但在那之前,需要一些籌辦工作,需要確定命字的位數。同上方異曲同工,原數字自身依次除以10,直到變為0,總次數就是數字位數。
下圖中,“num”指原數字。
以下是整段代碼。當然,你也可以操縱字符組,將數字視為字符串,然后再依次處置。但我為了可以把反轉后的數字看成變量,而不僅僅只是輸出,是以選擇以這種體例進行反轉。
然后進行編譯。我一般利用gcc編譯器。因為這段代碼中,利用了C說話新尺度的一些內容(好比注釋),是以添加了參數-std=c11。以下是我的編譯號令:
gcc -std=c11 reverse.c -o reverse.out
下面是運行成果,年夜體上還算可以。會發現若是數字過年夜,會溢出,導致錯誤的成果。是以,為了可以利用更年夜的數字,可以改用long long、unsigned long long等整型變量類型。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!