798487012 发表于 2018-9-15 22:32:45

用while语句求5000以内所有2的乘幂

如题,书上有一些while语句的题目,前面的边查边想写出来了,后面有一题      【求用while语句求5000以内所有2的乘幂】这道题没写出来,百度了也没有类似的(我不知怎么搜{:10_250:}),请求各位大神告知{:10_254:}{:10_254:}{:10_254:}{:10_254:},我自己写的是这样但是结果是错的#include<stdio.h>

#include<math.h>

int main()

{
        int k =1;

        while ( k < = 5000 )
        {       
                        k = sqrt(k);
                        if ( k%2==0 );
               

                printf("%d\n",k);
               
                k=k+1;
        }
        return 0;

}

blrainingd 发表于 2018-9-15 22:46:23

2的乘幂是指2的次方吗?
我这样对不对?
def PowerOfTwo():
        k = 2
        while(k<5000):
                print(k,end='\t')
                k *= 2
PowerOfTwo()

798487012 发表于 2018-9-15 22:57:18

blrainingd 发表于 2018-9-15 22:46
2的乘幂是指2的次方吗?
我这样对不对?

兄弟这些函数我还没学到,暂时看不懂哈{:10_284:}

claws0n 发表于 2018-9-15 23:22:15

798487012 发表于 2018-9-15 22:57
兄弟这些函数我还没学到,暂时看不懂哈

if() 多了分号,所以全部都打印出来了。
没有必要开根, 直接 k = 2; while (k < 5000) { k *= 2; printf(); }

blrainingd 发表于 2018-9-15 23:23:45

798487012 发表于 2018-9-15 22:57
兄弟这些函数我还没学到,暂时看不懂哈

抱歉,没看清楚板块
int main(void){
        int k = 2;
        while(k<5000){
                printf("%d",k);
                k *=2;
        }       
}
这样子呢?

798487012 发表于 2018-9-16 07:39:55

claws0n 发表于 2018-9-15 23:22
if() 多了分号,所以全部都打印出来了。
没有必要开根, 直接 k = 2; while (k < 5000) { k *= 2; print ...

学习了,还是自己太笨了{:10_266:}

798487012 发表于 2018-9-16 07:40:30

blrainingd 发表于 2018-9-15 23:23
抱歉,没看清楚板块

这样子呢?

谢谢大佬{:10_256:}
页: [1]
查看完整版本: 用while语句求5000以内所有2的乘幂