用goto语句写一个计算10的n次方结果的程序

Python022

用goto语句写一个计算10的n次方结果的程序,第1张

#include<stdio.h>

int main()

{int ci

scanf("%d", &ci)

int k = 1, i = 0

B:

if (ci > i)

{k *= 10

i++

goto B

printf("%d\n",k)

 return 0

}

34+2*2TAN30度=36.309O0001T0303G98M08M03S800G97GOX36.309Z2这里就是起刀点G1Z0F200X34W-2GOU-2Z80X70M05M30

给定一个整数,写一个函数来判断它是否是 3 的幂次方。

示例 1:

用最常规的方法,直接用除余来判断

进阶:

你能不使用循环或者递归来完成本题吗?

利用3进制来判断

执行用时:108 ms, 在所有 Go 提交中击败了8.55%的用户

内存消耗:6.9 MB, 在所有 Go 提交中击败了11.48%的用户

能看到其实上面的效率会有点慢,我们可以优化一下

执行用时:28 ms, 在所有 Go 提交中击败了75.09%的用户

内存消耗:6 MB, 在所有 Go 提交中击败了100.00%的用户

还有一种适用于该题的数学解法,在int范围内的3的幂只有19个,分别是

最大的第19个为1162261467

因为 3 是质数,所以 3^19 的除数只有 3 3,3 1, …3 ^19,因此我们只需要将 3^19 除以 n。若余数为 0 意味着 n 是 3^19的除数,因此是 3 的幂。

执行用时:24 ms, 在所有 Go 提交中击败了84.39%的用户

内存消耗:6.1 MB, 在所有 Go 提交中击败了29.51%的用户