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 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!