为什么任意一个正整数都可以用2的幂次方表示
答案:2 悬赏:0 手机版
解决时间 2021-02-23 05:26
- 提问者网友:沦陷
- 2021-02-22 21:13
就是说用2的0次幂 2的一次幂 2的二次幂………… 2的n次幂 这些数相加的和可以等于所有数 比如说1=2的0次幂 2=2的一次幂 3=2的0次幂加2的一次幂 …………
最佳答案
- 五星知识达人网友:人類模型
- 2021-02-22 21:50
这就是二进制嘛
全部回答
- 1楼网友:野慌
- 2021-02-22 22:03
也不说用什么语言,怎么给你写程序嘛,还是你自己写吧,用递归来做这样的程序是很简单的,不用管n有多大,因为n太大以后就需要多次扫描。
对于任意的数n,可以根据其二进制形态哪些位数为1改为∑2(i)的形式,然后递归把里面括号中大于的2的数进行分解,最后没有大于的2的指数出现即可。
设计一个把n转换为字符串的函数,逐位转换时,如果遇到大于2的指数就递归调用一次本函数,装配一下字符串即可。
补充:
今天花了半小时下载和学习了qbasic,下面是我人生的第一个qbasic程序,调试通过,结果保证正确:
function str2$ (x)
let s$ = ""
let i = x
let j = 0
do while i > 0
if i mod 2 = 1 then
if s$ <> "" then s$ = "+" + s$
if j > 2 then
s$ = "2(" + str2$(j) + ")" + s$
else
if j = 1 then
s$ = "2" + s$
else
if j = 0 then
s$ = "2(0)" + s$
else
s$ = "2(2)" + s$
end if
end if
end if
end if
i = int(i / 2)
j = j + 1
loop
str2$ = s$
end function
declare function str2$ (x!)
input x
print str2$(x)
有主程序和函数,我是按f2进行切换分开复制的,我也不太熟悉qbasic的操作,希望你是高手,一看就明白。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯